MCPcopy
hub / github.com/guardicore/monkey

github.com/guardicore/monkey @v2.3.0 sqlite

repository ↗ · DeepWiki ↗ · release v2.3.0 ↗
5,828 symbols 26,528 edges 1,116 files 557 documented · 10%
README

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 akamai.com/infectionmonkey.

Screenshots

Map

Security 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
  • Log4Shell
  • Zerologon
  • and more, see our documentation hub for more information.

Setup

Check out the Setup page and the Getting Started guide in our documentation.

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

Extension points exported contracts — how you extend this code

Props (Interface)
(no doc)
monkey/monkey_island/cc/ui/src/components/ui-components/ErrorModal.tsx

Core symbols most depended-on inside this repo

dict
called by 110
monkey/common/base_models.py
register_instance
called by 81
monkey/common/di_container.py
resolve
called by 64
monkey/common/di_container.py
update
called by 61
monkey/monkey_island/cc/setup/island_config_options.py
set
called by 60
monkey/common/types/concurrency.py
add_resource
called by 52
monkey/monkey_island/cc/flask_utils/flask_di_wrapper.py
post
called by 43
monkey/monkey_island/cc/resources/agents.py
login
called by 42
monkey/tests/unit_tests/infection_monkey/base_island_api_client.py

Shape

Function 3,247
Method 1,859
Class 671
Route 38
Enum 12
Interface 1

Languages

Python91%
TypeScript9%
Java1%

Modules by API surface

monkey/tests/unit_tests/common/test_di_container.py69 symbols
monkey/tests/unit_tests/infection_monkey/island_api_client/test_http_island_api_client.py34 symbols
monkey/infection_monkey/monkey.py34 symbols
monkey/common/network/network_range.py33 symbols
monkey/tests/unit_tests/agent_plugins/payloads/ransomware/test_ransomware.py32 symbols
monkey/agent_plugins/exploiters/rdp/src/rdp_client.py32 symbols
envs/monkey_zoo/blackbox/test_blackbox.py32 symbols
envs/monkey_zoo/blackbox/island_client/monkey_island_client.py32 symbols
monkey/tests/unit_tests/monkey_island/cc/services/agent_plugin_service/test_mongo_agent_plugin_repository.py31 symbols
monkey/tests/unit_tests/monkey_island/cc/repositories/test_mongo_machine_repository.py31 symbols
monkey/tests/unit_tests/monkey_island/cc/resources/test_agent_events.py30 symbols
monkey/tests/unit_tests/monkey_island/cc/agent_event_handlers/test_scan_event_handler.py30 symbols

Dependencies from manifests, versioned

@apidevtools/json-schema-ref-parser10.1.0 · 1×
@babel/cli7.22.5 · 1×
@babel/core7.22.5 · 1×
@babel/eslint-parser7.22.5 · 1×
@babel/plugin-proposal-class-properties7.18.6 · 1×
@babel/plugin-transform-runtime7.22.5 · 1×
@babel/preset-env7.22.5 · 1×
@babel/preset-react7.22.5 · 1×
@babel/runtime7.22.5 · 1×
@emotion/babel-plugin11.11.0 · 1×
@emotion/react11.11.1 · 1×
@emotion/styled11.11.0 · 1×

Datastores touched

(mongodb)Database · 1 repos

For agents

$ claude mcp add monkey \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact