678db40e25
socket.gethostbyname() may return different results on different systems when provided with an IP address that contains a space. This depends on python version or other environmental factors. For example: System 1: >>> socket.gethostbyname('172.60 .9.109') Traceback (most recent call last): File "<stdin>", line 1, in <module> socket.gaierror: [Errno -2] Name or service not known >>> socket.gethostbyname('172.17 .9.109') Traceback (most recent call last): File "<stdin>", line 1, in <module> socket.gaierror: [Errno -2] Name or service not known System 2: >>> socket.gethostbyname('172.60 .9.109') '172.0.0.60' To remedy this, this commit adds a check to verify that the IP/domain does not contain a space, as a space is an illegal character in either. |
||
---|---|---|
.github | ||
.swm | ||
build_scripts | ||
deployment_scripts | ||
docs | ||
envs | ||
monkey | ||
.flake8 | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
.pre-commit-config.yaml | ||
.travis.yml | ||
CHANGELOG.md | ||
CONTRIBUTING.md | ||
LICENSE | ||
README.md | ||
codecov.yml | ||
pyproject.toml | ||
vulture_allowlist.py |
README.md
Infection Monkey
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
- 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 | |
Master |
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).