Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add brute-force exploiters' explanation pages #4269

Open
wants to merge 30 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
0b6aa1c
Docs: Add PowerShell features page
shreyamalviya Jul 23, 2024
e9c9ef0
Docs: Add RDP features page
shreyamalviya Jul 23, 2024
2d6451a
Docs: Add MSSQL features page
shreyamalviya Aug 5, 2024
ab3c12b
Docs: Add SMB features page
shreyamalviya Aug 5, 2024
49cd5c0
Docs: Add SSH features page
shreyamalviya Aug 5, 2024
77697ea
Docs: Add WMI features page
shreyamalviya Aug 5, 2024
8cc3fbf
Docs: Add missing MSSQL configuration screenshot
shreyamalviya Aug 5, 2024
7627886
Docs: Removed unneeded detail on RDP features page
shreyamalviya Aug 5, 2024
0a8f18d
Docs: Update MSSQL features page metadata
shreyamalviya Aug 5, 2024
dcff784
Docs: Remove numbering for one-item lists in MSSQL, SMB, WMI feature …
shreyamalviya Aug 6, 2024
eb0ba49
Docs: Reword some content in PowerShell exploiter feature page
shreyamalviya Aug 6, 2024
11f24d8
Docs: Reword some content in RDP exploiter feature page
shreyamalviya Aug 6, 2024
471b6d4
Docs: Add link to mitigation suggestion in SSH exploiter feature page
shreyamalviya Aug 6, 2024
2b246f1
Docs: Update content in SMB exploiter feature page
shreyamalviya Aug 6, 2024
d772980
Docs: Update content in WMI exploiter feature page
shreyamalviya Aug 6, 2024
c205e18
Docs: Update content in SSH exploiter feature page
shreyamalviya Aug 6, 2024
2d47105
Docs: Update content in MSSQL exploiter features page
shreyamalviya Aug 13, 2024
45fa31f
Docs: Update content in Powershell exploiter features page
shreyamalviya Aug 13, 2024
774c803
Docs: Update content in RDP exploiter features page
shreyamalviya Aug 13, 2024
d988a14
Docs: Update content in SMB exploiter features page
shreyamalviya Aug 13, 2024
fd11557
Docs: Update content in SSH exploiter features page
shreyamalviya Aug 13, 2024
29c2849
Docs: Update content in WMI exploiter features page
shreyamalviya Aug 13, 2024
d69cc96
Docs: Improve wording of MSSQL exploiter feature
mssalvatore Aug 13, 2024
126be7e
Docs: Improve wording of powershell exploiter feature
mssalvatore Aug 13, 2024
bd6e568
Docs: Fix tense in Log4Shell exploiter features page
shreyamalviya Aug 14, 2024
ffd82c6
Docs: Fix tense in Powershell exploiter features page
shreyamalviya Aug 14, 2024
54b378b
Docs: Fix tense in RDP exploiter features page
shreyamalviya Aug 14, 2024
e9d5ca4
Docs: Fix tense in SMB exploiter features page
shreyamalviya Aug 14, 2024
1f8f525
Docs: Fix tense in SSH exploiter features page
shreyamalviya Aug 14, 2024
a24271b
Docs: Fix tense in WMI exploiter features page
shreyamalviya Aug 14, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/content/features/exploiters/log4shell.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ to propagate to a victim machine.

### Services exploited

Infection Monkey will attempt to exploit the Log4Shell vulnerability in the
Infection Monkey attempts to exploit the Log4Shell vulnerability in the
following services:

- Apache Solr
Expand Down
48 changes: 48 additions & 0 deletions docs/content/features/exploiters/mssql.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
title: "MSSQL Exploiter"
draft: false
description: "Exploits MSSQL by taking advantage of insecure configuration"
tags: ["exploiter", "mssql", "brute force"]
pre: "<i class='fa fa-database'></i> "
---

## MSSQL

[MSSQL (Microsoft SQL Server)](
https://learn.microsoft.com/en-us/sql/sql-server/what-is-sql-server) is a
relational database management system (RDBMS) developed by Microsoft whose
functions include managing, storing, retrieving, manipulating, and analyzing
data efficiently. In addition to manipulating data stored within the database,
the [`xp_cmdshell`](
https://learn.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/xp-cmdshell-transact-sql)
procedure allows users to manipulate the host server by executing Windows shell
commands from within the SQL Server environment.

## Exploitation

Because of the inherent security risks associated with `xp_cmdshell`, it is
disabled by default. If `xp_cmdshell` has been enabled on an MSSQL instance,
attackers who possess valid credentials can leverage MSSQL to run arbitrary commands
on the server. Infection Monkey's MSSQL exploiter uses brute-force to
authenticate with a victim's MSSQL server and uses `xp_cmdshell` to propagate
to the victim server.

![MSSQL Configuration](
/images/island/configuration-page/mssql-exploiter-configuration.png
"MSSQL Configuration")

### Credentials used

The MSSQL exploiter uses [user-configured credentials](
/usage/configuration/credentials), as well as credentials collected from other
victims for brute-forcing. All possible combinations of usernames and passwords
are used, prioritizing pairs provided by the user in the configuration.

## Mitigation

The best approach to mitigate this attack is to disable the `xp_cmdshell`
feature as described in [Microsoft's documentation](
https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/xp-cmdshell-server-configuration-option?view=sql-server-2017).

## See also
- [MSSQL exploiter reference documentation](/reference/exploiters/mssql)
83 changes: 83 additions & 0 deletions docs/content/features/exploiters/powershell.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
---
title: "PowerShell Exploiter"
draft: false
description: "Exploits PowerShell Remoting"
tags: ["exploiter", "powershell", "brute force"]
pre: "<i class='fa fa-terminal'></i> "
---

## PowerShell Remoting

[PowerShell Remoting](
https://docs.microsoft.com/en-us/powershell/scripting/learn/remoting/winrmsecurity)
is a PowerShell feature that enables connecting to Windows machines remotely in
order to execute PowerShell commands on them. It is commonly used by
administrators to manage multiple systems in a network.

## Exploitation

Attackers that can successfully authenticate via PowerShell Remoting are able
to execute arbitrary commands on the victim machine. Infection Monkey's
PowerShell exploiter uses brute-force to attempt to propagate to a victim
via PowerShell Remoting.

![PowerShell Configuration](
/images/island/configuration-page/powershell-exploiter-configuration.png
"PowerShell Configuration")

### 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 [user-configured credentials](
/usage/configuration/credentials), as well as credentials collected from other
victims. Different combinations of credentials are attempted in the following
order:

1. **Cached username and password (Windows attacker only)** - The exploiter
uses 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 attempts to
log into the victim machine using usernames set in the
[configuration](/usage/configuration/credentials) or stolen from other
victims, and 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 attempts to log into the victim machine using usernames
set in the [configuration](/usage/configuration/credentials) or stolen from
other victims, and the current user's cached password.

1. **Brute force usernames and passwords** - The exploiter attempts to use
all combinations of usernames and passwords that were set in the
[configuration](/usage/configuration/credentials) or stolen from other
victims.

1. **Brute force usernames and LM hashes** - The exploiter attempts to use
all combinations of usernames and LM hashes that were set in the
[configuration](/usage/configuration/credentials) or stolen from other
victims.

1. **Brute force usernames and NT hashes** - The exploiter attempts to use
all combinations of usernames and NT hashes that were set in the
[configuration](/usage/configuration/credentials) or stolen from other
victims.

## Mitigation

1. Restrict PowerShell remote command execution.
1. Harden the credentials of relevant users by enforcing strong password
policies.
1. Enable multi-factor authentication.

More 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).

## See also
- [PowerShell exploiter reference documentation](/reference/exploiters/powershell)
58 changes: 58 additions & 0 deletions docs/content/features/exploiters/rdp.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
---
title: "RDP Exploiter"
draft: false
description: "Exploits RDP"
tags: ["exploiter", "rdp", "brute force"]
pre: "<i class='fa fa-desktop'></i> "
---

## RDP

[RDP (Remote Desktop Protocol)](
https://learn.microsoft.com/en-us/windows/win32/termserv/remote-desktop-protocol)
is a network communication protocol by Microsoft which enables users to connect
to another computer over a network, providing a remote display and input
capabilities to the user. It is commonly used for remote administration, remote
technical support, and remote work access.

## Exploitation

Machines with RDP enabled may be accessible to attackers if they come across
the correct credentials. Infection Monkey's RDP exploiter uses brute-force to
attempt to propagate to a victim via RDP.

![RDP Configuration](
/images/island/configuration-page/rdp-exploiter-configuration.png
"RDP Configuration")

### Credentials used

The RDP exploiter uses [user-configured credentials](
/usage/configuration/credentials) as well as credentials collected from
other victims. Different combinations of credentials are attempted in the
following order:

1. **Brute force usernames and passwords** - The exploiter attempts to use
all combinations of usernames and passwords that were set in the
[configuration](/usage/configuration/credentials) or stolen from other
victims.

1. **Brute force usernames and NT hashes** - The exploiter attempts to use
all combinations of usernames and NT hashes that were set in the
[configuration](/usage/configuration/credentials) or stolen from other
victims.

This only works on Windows 8.1 and Windows Server 2012 R2. You can read more
[here](https://www.kali.org/blog/passing-hash-remote-desktop/).

## Mitigation

1. Change user passwords to complex passwords that are not shared with other
computers on the network.

For information about remediating RDP-related security risks, see
[Microsoft's
guidance](https://www.microsoft.com/en-us/security/blog/2020/04/16/security-guidance-remote-desktop-adoption/)

## See also
- [RDP exploiter reference documentation](/reference/exploiters/rdp)
42 changes: 42 additions & 0 deletions docs/content/features/exploiters/smb.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
title: "SMB Exploiter"
draft: false
description: "Exploits SMB"
tags: ["exploiter", "smb", "brute force"]
pre: "<i class='fa fa-folder-open'></i> "
---

## SMB

[SMB (Server Message Block)](https://en.wikipedia.org/wiki/Server_Message_Block)
is a network protocol primarily used in Windows for sharing and communication
between computers on a network. Besides resource sharing, SMB supports remote
procedure calls (RPC), which allows executing arbitrary commands on remote
systems using command line utilities such as `psexec` and `smbexec`. This is
generally used for administrative tasks and remote management.

## Exploitation

Machines with SMB enabled may be accessible to attackers if they come across the
correct credentials. Infection Monkey's SMB exploiter uses brute-force to
attempt to propagate to a victim via SMB.

![SMB Configuration](
/images/island/configuration-page/smb-exploiter-configuration.png
"SMB Configuration")

### Credentials used

The SMB exploiter uses [user-configured credentials](
/usage/configuration/credentials) as well as credentials collected from other
victims for brute-forcing. All possible combinations of usernames, passwords,
LM hashes, and NT hashes are used, prioritizing pairs provided by the user in
the configuration.

## Mitigation

Change user passwords to complex passwords that are not shared with other
computers on the network.

## See also
- [SMB exploiter reference documentation](/reference/exploiters/smb)
46 changes: 46 additions & 0 deletions docs/content/features/exploiters/ssh.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
title: "SSH Exploiter"
draft: false
description: "Exploits SSH"
tags: ["exploiter", "ssh", "brute force"]
pre: "<i class='fa fa-terminal'></i> "
---

## SSH

[SSH (Secure Shell)](https://en.wikipedia.org/wiki/Secure_Shell) is a network
protocol designed for Unix-like operating systems that provides a secure way to
access a remote computer over an unsecured network. After establishing an
encrypted connection to a remote machine, it can be used to execute arbitrary
commands directly through the SSH terminal or by specifying commands in the SSH
client. This allows for secure remote administration and automation of tasks on
the target system.

## Exploitation

Machines with SSH enabled may be accessible to attackers if they come across the
correct credentials. Infection Monkey's SSH exploiter uses brute-force to
attempt to propagate to a victim via SSH.

![SSH Configuration](
/images/island/configuration-page/ssh-exploiter-configuration.png
"SSH Configuration")

### Credentials used

The SSH exploiter uses [user-configured credentials](
/usage/configuration/credentials) as well as credentials collected from other
victims for brute-forcing. All possible combinations of usernames, passwords,
and SSH keypairs are used, prioritizing pairs provided by the user in the
configuration.

## Mitigation

1. Change user passwords to complex passwords that are not shared with other
computers on the network.

1. [Store private keys securely.](
https://www.ssldragon.com/blog/best-practices-to-store-the-private-key/)

## See also
- [SSH exploiter reference documentation](/reference/exploiters/ssh)
43 changes: 43 additions & 0 deletions docs/content/features/exploiters/wmi.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
---
title: "WMI Exploiter"
draft: false
description: "Exploits WMI"
tags: ["exploiter", "wmi", "brute force"]
pre: "<i class='fa fa-toolbox'></i> "
---

## WMI

[WMI (Windows Management Instrumentation)](
https://learn.microsoft.com/en-us/windows/win32/wmisdk/wmi-start-page) is a set
of tools and extensions in Windows for managing and querying system information,
configurations, and operations. WMI's command line utilities and scripting
capabilities are used by administrators to run arbitrary commands on local and
remote environments for monitoring system health, automating administrative
functions, managing network resources, etc.

## Exploitation

Machines with WMI enabled may be accessible to attackers if they come across the
correct credentials. Infection Monkey's WMI exploiter uses brute-force to
attempt to propagate to a victim via WMI.

![WMI Configuration](
/images/island/configuration-page/wmi-exploiter-configuration.png
"WMI Configuration")

### Credentials used

The WMI exploiter uses [user-configured credentials](
/usage/configuration/credentials) as well as credentials collected from other
victims for brute-forcing. All possible combinations of usernames, passwords,
LM hashes, and NT hashes are used, prioritizing pairs provided by the user in
the configuration.

## Mitigation

Change user passwords to complex passwords that are not shared with other
computers on the network.

## See also
- [WMI exploiter reference documentation](/reference/exploiters/wmi)
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.