# Why "catch a shell"?
- shell: program that provides a user with an interface to input instructions into the system and view text output such as Bash, Zsh, cmd, and PowerShell
- shell gives us direct access to the OS, system commands, and the file system
- So, once we gain access, we can start enumerating the system for vectors that may allow us to privesc, pivot, transfer files, etc
- If we don't establish a shell, we are pretty limited on how far we can get on a target machine
| Perspective | Description |
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Computing | text-based userland environment that is utilized to administer tasks and submit instructions on a PC such as Bash, Zsh, cmd, and PowerShell. |
| Exploitaiton & Securituy | the shell is often the result of exploiting a vulnerability or bypassing security measures to gain interactive access to a host such as triggering EternalBlue to gain access to the cmd-prompt |
| Web | like a standard shell, except it exploits a vulnerability (often the ability to upload a file or script) that provides the attacker with a way to issue instructions, read and access files, and potentially perform destructive actions to the underlying host |
# Payloads Deliver us Shells
- Ways in which a payload can be defined:
| Payload Type | Description |
| ----------------------- | ---------------------------------------------------------------------------- |
| Networking | encapsulated data portion of a packet traversing modern computer networks |
| Basic Computing | portion of an instruction set that defines the action to be taken |
| Programming | data portion referenced or carried by the programming language instruction |
| Exploitation & Security | code crafted with the intent to exploit a vulnerability on a computer system |
# Overview
#### Shell basics
- Replicate being able to get a bind and reverse shell.
- Bind Shell on Linux host.
- Reverse Shell on Windows Host.
#### Payload Basics
- Demonstrate launching a payload from MSF.
- Demonstrate searching and building a payload from PoC on ExploitDB.
- Demonstrate knowledge of payload creation.
#### Getting a Shell on Windows
- Using the recon results provided, craft or use a payload that will exploit the host and provide a shell back.
#### Getting a Shell on Linux
- Using the recon results provided, craft or use a payload to exploit the host and establish a shell session.
#### Landing a Web Shell
- Demonstrate knowledge of web shells and common web applications by identifying a common web application and its corresponding language.
- Using the recon results provided, deploy a payload that will provide shell access from your browser.
#### Spotting a Shell or Payload
- Detect the presence of a payload or interactive shell on a host by analyzing relevant information provided.
#### Final Challenge
- Utilize knowledge gained from the previous sections to select, craft, and deploy a payload to access the provided hosts. Once a shell has been acquired, grab the requested information to answer the challenge questions.