diff --git a/docs/content/reference/exploiters/PowerShell.md b/docs/content/reference/exploiters/PowerShell.md
new file mode 100644
index 000000000..5e901e93c
--- /dev/null
+++ b/docs/content/reference/exploiters/PowerShell.md
@@ -0,0 +1,55 @@
+---
+title: "PowerShell"
+date: 2021-08-24T12:19:21+03:00
+draft: false
+tags: ["exploit", "windows"]
+---
+
+### Description
+
+This exploiter uses brute-force to propagate to a victim through PowerShell
+Remoting using Windows Remote Management (WinRM).
+
+See Microsoft's documentation for more on [PowerShell Remoting
+Protocol](https://docs.microsoft.com/en-us/powershell/scripting/learn/remoting/winrmsecurity?view=powershell-7.1)
+and [Windows Remote
+Management](https://docs.microsoft.com/en-us/windows/win32/winrm/portal).
+
+
+##### Credentials used
+
+The PowerShell exploiter can be run from both Linux and Windows attackers. On
+Windows attackers, the exploiter has the ability to use the cached username
+and/or password from the current user. On both Linux and Windows attackers, the
+exploiter uses all combinations of the [user-configured usernames and
+passwords]({{< ref "/usage/configuration/basic-credentials" >}}). Different
+combinations of credentials are attempted in the following order:
+
+1. **Cached username and password (Windows attacker only)** - The exploiter will
+ use the stored credentials of the current user to attempt to log into the
+ victim machine.
+
+1. **Brute force usernames with blank passwords** - Windows allows you to
+ configure a user with a blank/empty password. The exploiter will attempt to
+ log into the victim machine using each username set in the
+ [configuration]({{< ref "/usage/configuration/basic-credentials" >}}) with a
+ blank password.
+
+ In order for the attacker to connect with a blank password, the victim must
+ have enabled basic authentication, http and no encryption.
+
+1. **Brute force usernames with cached password (Windows attacker only)** - The
+ exploiter will attempt to log into the victim machine using each username
+ set in the [configuration]({{< ref "/usage/configuration/basic-credentials"
+ >}}) and the current user's cached password.
+
+1. **Brute force usernames and passwords** - The exploiter will attempt to use
+ all combinations of usernames and passwords that were set in the
+ [configuration.]({{< ref "/usage/configuration/basic-credentials" >}})
+
+
+#### Securing PowerShell Remoting
+
+Information about how to remediate security concerns related to PowerShell
+Remoting can be found
+[here](https://docs.microsoft.com/en-us/powershell/scripting/learn/remoting/winrmsecurity?view=powershell-7.1).
diff --git a/envs/monkey_zoo/docs/fullDocs.md b/envs/monkey_zoo/docs/fullDocs.md
index 3cdc79f74..80ecf5f55 100644
--- a/envs/monkey_zoo/docs/fullDocs.md
+++ b/envs/monkey_zoo/docs/fullDocs.md
@@ -30,8 +30,11 @@ This document describes Infection Monkey’s test network, how to deploy and use
[Nr. 22 Scan](#_Toc526517197)
[Nr. 23 Struts2](#_Toc536021476)
[Nr. 24 Struts2](#_Toc536021477)
-[Nr. 250 MonkeyIsland](#_Toc536021478)
-[Nr. 251 MonkeyIsland](#_Toc536021479)
+[Nr. 25 Zerologon](#_Toc536021478)
+[Nr. 3-45 Powershell](#_Toc536021479)
+[Nr. 3-46 Powershell](#_Toc536021480)
+[Nr. 250 MonkeyIsland](#_Toc536021481)
+[Nr. 251 MonkeyIsland](#_Toc536021482)
[Network topography](#network-topography)
# Warning\!
@@ -59,9 +62,9 @@ To deploy:
1. Configure service account for your project:
a. Create a service account (GCP website -> IAM & Admin -> Service Accounts -> + CREATE SERVICE ACCOUNT) and name it “your\_name-monkeyZoo-user”
-
+
b. Give these permissions to your service account:
-
+
**Compute Engine -> Compute Network Admin**
and
**Compute Engine -> Compute Instance Admin (v1)**
@@ -69,11 +72,11 @@ To deploy:
**Compute Engine -> Compute Security Admin**
and
**Service Account User**
-
+
or
-
+
**Project -> Owner**
-
+
c. Create and download its **Service account key** in JSON and place it in **monkey_zoo/gcp_keys** as **gcp_key.json**.
2. Get these permissions in the monkeyZoo project (guardicore-22050661) for your service account (ask monkey developers to add them):
@@ -85,29 +88,29 @@ To deploy:
link to your service account key file):
provider "google" {
-
+
project = "test-000000" // Change to your project id
-
+
region = "europe-west3" // Change to your desired region or leave default
-
+
zone = "europe-west3-b" // Change to your desired zone or leave default
-
- credentials = "${file("../gcp_keys/gcp_key.json")}" // Change to the location and name of the service key.
+
+ credentials = "${file("../gcp_keys/gcp_key.json")}" // Change to the location and name of the service key.
// If you followed instruction above leave it as is
-
+
}
-
+
locals {
-
+
resource_prefix = "" // All of the resources will have this prefix.
// Only change if you want to have multiple zoo's in the same project
-
+
service_account_email="tester-monkeyZoo-user@testproject-000000.iam.gserviceaccount.com" // Service account email
-
+
monkeyzoo_project="guardicore-22050661" // Project where monkeyzoo images are kept. Leave as is.
-
+
}
-
+
4. Run terraform init
To deploy the network run:
@@ -117,7 +120,7 @@ To deploy the network run:
# Using islands:
-###How to get into the islands:
+### How to get into the islands:
**island-linux-250:** SSH from GCP
@@ -125,9 +128,9 @@ To deploy the network run:
island-windows-251. Set password for your account and then RDP into
the island.
-###These are most common steps on monkey islands:
+### These are most common steps on monkey islands:
-####island-linux-250:
+#### island-linux-250:
To run monkey island:
`sudo /usr/run\_island.sh`
@@ -142,7 +145,7 @@ Update all requirements using deployment script:
1\. `cd /usr/infection_monkey/deployment_scripts`
2\. `./deploy_linux.sh "/usr/infection_monkey" "develop"`
-####island-windows-251:
+#### island-windows-251:
To run monkey island:
Execute C:\\run\_monkey\_island.bat as administrator
@@ -156,8 +159,8 @@ To update repository:
3\. `git pull` (updates develop branch)
Update all requirements using deployment script:
-1. `cd C:\infection_monkey\deployment_scripts`
-2. `./run_script.bat "C:\infection_monkey" "develop"`
+1\. `cd C:\infection_monkey\deployment_scripts`
+2\. `./run_script.bat "C:\infection_monkey" "develop"`
# Running tests:
@@ -276,10 +279,6 @@ fullTest.conf is a good config to start, because it covers all machines.
Nr. 25 ZeroLogon + | Nr. 25 ZeroLogon (10.2.2.25) |
(Vulnerable) |
---|
Nr. 250 MonkeyIsland + | Nr. 3-45 Powershell +(10.2.3.45) |
+(Vulnerable) | +
---|---|---|
OS: | +Windows Server 2016 x64 | +|
Software: | +WinRM service | +|
Default server’s port: | +- | +|
Notes: | +User: m0nk3y, Password: Passw0rd! User: m0nk3y-user, No Password. |
+
Nr. 3-46 Powershell +(10.2.3.46) |
+(Vulnerable) | +
---|---|
OS: | +Windows Server 2016 x64 | +
Software: | +WinRM service | +
Default server’s port: | +- | +
Notes: | +User: m0nk3y, Password: Passw0rd! | +
Nr. 250 MonkeyIsland (10.2.2.250) |
Notes: | Only accessible trough GCP | -
---|---|
- | - |
Nr. 251 MonkeyIsland + | Nr. 251 MonkeyIsland (10.2.2.251) |
||
---|---|---|---|
OS: | Windows Server 2016 x64 | @@ -1183,13 +1200,9 @@ fullTest.conf is a good config to start, because it covers all machines.Notes: | Only accessible trough GCP |
- | - |