Go to file
Mike Salvatore c9e59bd266 Agent: Refactor Log4Shell LDAP server to avoid race condition
A race condition existed between the time when the LDAP server was
instructed to start and the first exploit was sent to the victim.
Sometimes, the first exploit would be sent before the LDAP server
finished starting, resulting in failed exploitation.

To remedy this, the LDAPExploitServer.run() function now blocks until
the server has successfully started. Once the server has started,
LDAPExploitServer.run() returns. This allows the caller to have
confidence that the LDAP server is running after LDAPExploitServer.run()
returns and alleviates the need to sleep in order to avoid the race
condition.
2022-01-14 09:43:14 -05:00
.github Add changelog checklist item to pull request template 2021-03-29 12:20:33 -04:00
.swm swimm: update exercise Add details about your new PBA JFXftJml8DpmuCPBA9rL 2021-09-24 17:41:08 +05:30
build_scripts Build: change docker container to set MONKEY_DOCKER_CONTAINER env var. This variable is needed because we can't prompt for data dir removal on docker like we do on other deployments 2021-10-25 17:11:31 +03:00
deployment_scripts Deployment: Add requirements.txt for attack mitigations dump script 2021-09-30 18:03:28 +02:00
docs Docs: Some small tweaks to the Log4Shell documentation 2022-01-13 09:40:59 -05:00
envs BB: add log4j machines to gcp machine list 2022-01-14 14:51:18 +02:00
monkey Agent: Refactor Log4Shell LDAP server to avoid race condition 2022-01-14 09:43:14 -05:00
.flake8 Island: Add all imports from encryption to __init__ 2021-09-23 19:00:13 +02:00
.gitattributes Tests: Add test_readme.txt to .gitattributes 2021-07-19 06:41:53 -04:00
.gitignore BB performance tests: update the outdated README.md and other small improvements 2021-07-31 19:40:19 -04:00
.gitmodules Island: Remove attack-data submodule 2021-09-30 10:52:41 -04:00
.pre-commit-config.yaml Add vulture pre-commit hook 2021-05-05 19:09:07 +05:30
.travis.yml Travis: Download latest swimm from github 2021-10-14 07:51:33 -04:00
CHANGELOG.md Changelog: Release v1.12.0 2021-10-27 10:14:36 -04:00
CONTRIBUTING.md Update slack links in documentation 2021-01-25 10:35:39 -05:00
LICENSE Add SecureAuth Corporation acknowledgement to LICENSE.md 2021-02-22 17:44:15 +05:30
README.md Remove training whitespace from README.md 2021-06-20 09:15:57 -04:00
codecov.yml Disable codecov annotations in pull requests 2021-06-22 10:00:23 -04:00
pyproject.toml Island: Add all imports from encryption to __init__ 2021-09-23 19:00:13 +02:00
vulture_allowlist.py Island: add log4shell issue processing and reporting 2022-01-06 12:26:00 +02:00

README.md

Infection Monkey

GitHub release (latest by date)

Build Status codecov

GitHub stars GitHub commit activity

Data center Security Testing Tool

Welcome to the Infection Monkey!

The Infection Monkey is an open source security tool for testing a data center's resiliency to perimeter breaches and internal server infection. The Monkey uses various methods to self propagate across a data center and reports success to a centralized Monkey Island server.

The Infection Monkey is comprised of two parts:

  • Monkey - A tool which infects other machines and propagates to them.
  • Monkey Island - A dedicated server to control and visualize the Infection Monkey's progress inside the data center.

To read more about the Monkey, visit infectionmonkey.com.

Screenshots

Map

Security report

Zero trust report

ATT&CK report

Main Features

The Infection Monkey uses the following techniques and exploits to propagate to other machines.

  • Multiple propagation techniques:
    • Predefined passwords
    • Common logical exploits
    • Password stealing using Mimikatz
  • Multiple exploit methods:
    • SSH
    • SMB
    • WMI
    • Shellshock
    • Conficker
    • SambaCry
    • Elastic Search (CVE-2015-1427)
    • Weblogic server
    • and more, see our Documentation hub for more information about our RCE exploiters.

Setup

Check out the Setup page in the Wiki or a quick getting started guide.

The Infection Monkey supports a variety of platforms, documented in our documentation hub.

Building the Monkey from source

To deploy development version of monkey you should refer to readme in the deployment scripts folder or follow documentation in documentation hub.

Build status

Branch Status
Develop Build Status
Master Build Status

Tests

Unit Tests

In order to run all of the Unit Tests, run the command python -m pytest in the monkey directory.

To get a coverage report, first make sure the coverage package is installed using pip install coverage. Run the command coverage run -m unittest in the monkey directory and then coverage html. The coverage report can be found in htmlcov.index.

Blackbox tests

In order to run the Blackbox tests, refer to envs/monkey_zoo/blackbox/README.md.

License

Copyright (c) Guardicore Ltd

See the LICENSE file for license rights and limitations (GPLv3).