From 2a4024926b49edf2a33890d81096f6d3760440c8 Mon Sep 17 00:00:00 2001 From: Shreya Malviya Date: Mon, 31 Jan 2022 14:53:09 +0530 Subject: [PATCH 01/15] Agent: Update Pipfile to use an original pyinstaller version instead of our fork and remove related dependencies as per the comments next to them. The pyinstaller version is changed to the version that the Island uses. --- monkey/infection_monkey/Pipfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/monkey/infection_monkey/Pipfile b/monkey/infection_monkey/Pipfile index 60def5d44..342677316 100644 --- a/monkey/infection_monkey/Pipfile +++ b/monkey/infection_monkey/Pipfile @@ -5,8 +5,7 @@ name = "pypi" [packages] cryptography = "==2.5" # We can't build 32bit ubuntu12 binary with newer versions of cryptography -pyinstaller = {git = "git://github.com/guardicore/pyinstaller"} -pyinstaller-hooks-contrib = "==2021.1" # Required to build docker with our pyinstaller branch +pyinstaller = "==3.6" impacket = ">=0.9" importlib-metadata = "==4.0.1" # Required to build docker with our pyinstaller branch ipaddress = ">=1.0.23" @@ -23,6 +22,7 @@ ScoutSuite = {git = "git://github.com/guardicode/ScoutSuite"} pyopenssl = "==19.0.0" # We can't build 32bit ubuntu12 binary with newer versions of pyopenssl pypsrp = "*" typing-extensions = "*" # Allows us to use 3.9 typing features on 3.7 project +pycryptodome = "*" # Used in common/utils/shellcode_obfuscator.py altgraph = "*" # Required for pyinstaller branch, without it agents fail to build pysmb = "*" "WinSys-3.x" = "*" From c3e66debc8fe808c4accddedc1f209469d39f30b Mon Sep 17 00:00:00 2001 From: Shreya Malviya Date: Mon, 31 Jan 2022 15:01:37 +0530 Subject: [PATCH 02/15] Docs: Remove the bootloader section from the operating systems page --- .../reference/operating_systems_support.md | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/docs/content/reference/operating_systems_support.md b/docs/content/reference/operating_systems_support.md index 36caaa25d..d945f2be3 100644 --- a/docs/content/reference/operating_systems_support.md +++ b/docs/content/reference/operating_systems_support.md @@ -44,21 +44,4 @@ Compatibility depends on GLIBC version (2.14+)[^1]. By default, these distributi We also provide a Dockerfile on our [website](http://infectionmonkey.com/) that lets the Monkey Island run inside a container. -### Old machine bootloader - -Some **older machines** still have partial compatibility and will be exploited and reported, but the Infection Monkey agent can't run on them. In these cases, old machine bootloader (a small C program) will be run, which reports some minor info like network interface configuration, GLIBC version, OS, etc. - -**Old machine bootloader** also has a GLIBC 2.14+ requirement for Linux because the bootloader is included in the Pyinstaller bootloader, which uses Python 3.7 that in turn requires GLIBC 2.14+. If you think partial support for older machines is important, don't hesitate to open a new issue about it. - -**Old machine bootloader** runs on machines with: - -- Centos 7+ -- Debian 7+ -- Kali 2019+ -- Oracle 7+ -- Rhel 7+ -- Suse 12+ -- Ubuntu 14+ -- **Windows XP/Server 2003+** - [^1]: The GLIBC >= 2.14 requirement exists because the Infection Monkey was built using this GLIBC version, and GLIBC is not backward compatible. We are also limited to the oldest GLIBC version compatible with Python 3.7. From fbd36e5b414c2edf3a047cae57c9c91315aeb4b9 Mon Sep 17 00:00:00 2001 From: Ilija Lazoroski Date: Mon, 31 Jan 2022 17:39:15 +0100 Subject: [PATCH 03/15] Island: Remove Bootloader server --- monkey/monkey_island/cc/server_setup.py | 14 ----- .../cc/server_utils/bootloader_server.py | 52 ------------------- 2 files changed, 66 deletions(-) delete mode 100644 monkey/monkey_island/cc/server_utils/bootloader_server.py diff --git a/monkey/monkey_island/cc/server_setup.py b/monkey/monkey_island/cc/server_setup.py index a99be1a40..98f29de10 100644 --- a/monkey/monkey_island/cc/server_setup.py +++ b/monkey/monkey_island/cc/server_setup.py @@ -3,7 +3,6 @@ import json import logging import sys from pathlib import Path -from threading import Thread import gevent.hub from gevent.pywsgi import WSGIServer @@ -22,7 +21,6 @@ from monkey_island.cc.app import init_app # noqa: E402 from monkey_island.cc.arg_parser import IslandCmdArgs # noqa: E402 from monkey_island.cc.arg_parser import parse_cli_args # noqa: E402 from monkey_island.cc.resources.monkey_download import MonkeyDownload # noqa: E402 -from monkey_island.cc.server_utils.bootloader_server import BootloaderHttpServer # noqa: E402 from monkey_island.cc.server_utils.consts import ( # noqa: E402 GEVENT_EXCEPTION_LOG, MONGO_CONNECTION_TIMEOUT, @@ -137,8 +135,6 @@ def _start_island_server(should_setup_only, config_options: IslandConfigOptions) logger.warning("Setup only flag passed. Exiting.") return - bootloader_server_thread = _start_bootloader_server() - logger.info( f"Using certificate path: {config_options.crt_path}, and key path: " f"{config_options.key_path}." @@ -155,16 +151,6 @@ def _start_island_server(should_setup_only, config_options: IslandConfigOptions) _log_init_info() http_server.serve_forever() - bootloader_server_thread.join() - - -def _start_bootloader_server() -> Thread: - bootloader_server_thread = Thread(target=BootloaderHttpServer().serve_forever, daemon=True) - - bootloader_server_thread.start() - - return bootloader_server_thread - def _log_init_info(): MonkeyDownload.log_executable_hashes() diff --git a/monkey/monkey_island/cc/server_utils/bootloader_server.py b/monkey/monkey_island/cc/server_utils/bootloader_server.py deleted file mode 100644 index fa00fbd24..000000000 --- a/monkey/monkey_island/cc/server_utils/bootloader_server.py +++ /dev/null @@ -1,52 +0,0 @@ -import logging -from http.server import BaseHTTPRequestHandler, HTTPServer -from socketserver import ThreadingMixIn -from urllib import parse - -import requests -import urllib3 - -from common.common_consts.timeouts import SHORT_REQUEST_TIMEOUT -from monkey_island.cc.server_utils.consts import ISLAND_PORT - -# Disable "unverified certificate" warnings when sending requests to island -urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) # noqa: DUO131 -logger = logging.getLogger(__name__) - - -class BootloaderHttpServer(ThreadingMixIn, HTTPServer): - def __init__(self): - server_address = ("", 5001) - super().__init__(server_address, BootloaderHTTPRequestHandler) - - -class BootloaderHTTPRequestHandler(BaseHTTPRequestHandler): - def do_POST(self): - content_length = int(self.headers["Content-Length"]) - post_data = self.rfile.read(content_length).decode() - island_server_path = BootloaderHTTPRequestHandler.get_bootloader_resource_url( - self.request.getsockname()[0] - ) - island_server_path = parse.urljoin(island_server_path, self.path[1:]) - # The island server doesn't always have a correct SSL cert installed - # (By default it comes with a self signed one), - # that's why we're not verifying the cert in this request. - r = requests.post( # noqa: DUO123 - url=island_server_path, data=post_data, verify=False, timeout=SHORT_REQUEST_TIMEOUT - ) - - try: - if r.status_code != 200: - self.send_response(404) - else: - self.send_response(200) - self.end_headers() - self.wfile.write(r.content) - except Exception as e: - logger.error("Failed to respond to bootloader: {}".format(e)) - finally: - self.connection.close() - - @staticmethod - def get_bootloader_resource_url(server_ip): - return "https://" + server_ip + ":" + str(ISLAND_PORT) + "/api/bootloader/" From add449c5f4e911634391135763a6bec5c7249454 Mon Sep 17 00:00:00 2001 From: Ilija Lazoroski Date: Mon, 31 Jan 2022 18:07:39 +0100 Subject: [PATCH 04/15] Island, UT: Remove bootloader service --- .../monkey_island/cc/services/bootloader.py | 71 ------------------- .../cc/services/utils/bootloader_config.py | 11 --- .../cc/services/test_bootloader_service.py | 24 ------- 3 files changed, 106 deletions(-) delete mode 100644 monkey/monkey_island/cc/services/bootloader.py delete mode 100644 monkey/monkey_island/cc/services/utils/bootloader_config.py delete mode 100644 monkey/tests/unit_tests/monkey_island/cc/services/test_bootloader_service.py diff --git a/monkey/monkey_island/cc/services/bootloader.py b/monkey/monkey_island/cc/services/bootloader.py deleted file mode 100644 index 05bdac8f1..000000000 --- a/monkey/monkey_island/cc/services/bootloader.py +++ /dev/null @@ -1,71 +0,0 @@ -from typing import Dict, List - -from bson import ObjectId - -from monkey_island.cc.database import mongo -from monkey_island.cc.services.node import NodeCreationException, NodeService -from monkey_island.cc.services.utils.bootloader_config import ( - MIN_GLIBC_VERSION, - SUPPORTED_WINDOWS_VERSIONS, -) -from monkey_island.cc.services.utils.node_states import NodeStates - - -class BootloaderService: - @staticmethod - def parse_bootloader_telem(telem: Dict) -> bool: - telem["ips"] = BootloaderService.remove_local_ips(telem["ips"]) - if telem["os_version"] == "": - telem["os_version"] = "Unknown OS" - - telem_id = BootloaderService.get_mongo_id_for_bootloader_telem(telem) - mongo.db.bootloader_telems.update({"_id": telem_id}, {"$setOnInsert": telem}, upsert=True) - - will_monkey_run = BootloaderService.is_os_compatible(telem) - try: - node = NodeService.get_or_create_node_from_bootloader_telem(telem, will_monkey_run) - except NodeCreationException: - # Didn't find the node, but allow monkey to run anyways - return True - - node_group = BootloaderService.get_next_node_state(node, telem["system"], will_monkey_run) - if "group" not in node or node["group"] != node_group.value: - NodeService.set_node_group(node["_id"], node_group) - return will_monkey_run - - @staticmethod - def get_next_node_state(node: Dict, system: str, will_monkey_run: bool) -> NodeStates: - group_keywords = [system, "monkey"] - if "group" in node and node["group"] == "island": - group_keywords.extend(["island", "starting"]) - else: - group_keywords.append("starting") if will_monkey_run else group_keywords.append("old") - node_group = NodeStates.get_by_keywords(group_keywords) - return node_group - - @staticmethod - def get_mongo_id_for_bootloader_telem(bootloader_telem) -> ObjectId: - ip_hash = hex(hash(str(bootloader_telem["ips"])))[3:15] - hostname_hash = hex(hash(bootloader_telem["hostname"]))[3:15] - return ObjectId(ip_hash + hostname_hash) - - @staticmethod - def is_os_compatible(bootloader_data) -> bool: - if bootloader_data["system"] == "windows": - return BootloaderService.is_windows_version_supported(bootloader_data["os_version"]) - elif bootloader_data["system"] == "linux": - return BootloaderService.is_glibc_supported(bootloader_data["glibc_version"]) - - @staticmethod - def is_windows_version_supported(windows_version) -> bool: - return SUPPORTED_WINDOWS_VERSIONS.get(windows_version, True) - - @staticmethod - def is_glibc_supported(glibc_version_string) -> bool: - glibc_version_string = glibc_version_string.lower() - glibc_version = glibc_version_string.split(" ")[-1] - return glibc_version >= str(MIN_GLIBC_VERSION) and "eglibc" not in glibc_version_string - - @staticmethod - def remove_local_ips(ip_list) -> List[str]: - return [i for i in ip_list if not i.startswith("127")] diff --git a/monkey/monkey_island/cc/services/utils/bootloader_config.py b/monkey/monkey_island/cc/services/utils/bootloader_config.py deleted file mode 100644 index f1eaf9368..000000000 --- a/monkey/monkey_island/cc/services/utils/bootloader_config.py +++ /dev/null @@ -1,11 +0,0 @@ -MIN_GLIBC_VERSION = 2.14 - -SUPPORTED_WINDOWS_VERSIONS = { - "xp_or_lower": False, - "vista": False, - "vista_sp1": False, - "vista_sp2": True, - "windows7": True, - "windows7_sp1": True, - "windows8_or_greater": True, -} diff --git a/monkey/tests/unit_tests/monkey_island/cc/services/test_bootloader_service.py b/monkey/tests/unit_tests/monkey_island/cc/services/test_bootloader_service.py deleted file mode 100644 index 25869fd29..000000000 --- a/monkey/tests/unit_tests/monkey_island/cc/services/test_bootloader_service.py +++ /dev/null @@ -1,24 +0,0 @@ -from unittest import TestCase - -from monkey_island.cc.services.bootloader import BootloaderService - -MIN_GLIBC_VERSION = 2.14 - - -class TestBootloaderService(TestCase): - def test_is_glibc_supported(self): - str1 = "ldd (Ubuntu EGLIBC 2.15-0ubuntu10) 2.15" - str2 = "ldd (GNU libc) 2.12" - str3 = "ldd (GNU libc) 2.28" - str4 = "ldd (Ubuntu GLIBC 2.23-0ubuntu11) 2.23" - self.assertTrue( - not BootloaderService.is_glibc_supported(str1) - and not BootloaderService.is_glibc_supported(str2) - and BootloaderService.is_glibc_supported(str3) - and BootloaderService.is_glibc_supported(str4) - ) - - def test_remove_local_ips(self): - ips = ["127.1.1.1", "127.0.0.1", "192.168.56.1"] - ips = BootloaderService.remove_local_ips(ips) - self.assertEqual(["192.168.56.1"], ips) From b5c51bedc122b22dc1b2e8fc2d9de56e4a056abe Mon Sep 17 00:00:00 2001 From: Ilija Lazoroski Date: Mon, 31 Jan 2022 18:21:04 +0100 Subject: [PATCH 05/15] Island, UT: Remove Bootloader endpoint --- monkey/monkey_island/cc/app.py | 2 - .../monkey_island/cc/resources/bootloader.py | 41 ------------ monkey/monkey_island/cc/services/node.py | 56 +--------------- .../cc/resources/test_bootloader.py | 66 ------------------- vulture_allowlist.py | 1 - 5 files changed, 1 insertion(+), 165 deletions(-) delete mode 100644 monkey/monkey_island/cc/resources/bootloader.py delete mode 100644 monkey/tests/unit_tests/monkey_island/cc/resources/test_bootloader.py diff --git a/monkey/monkey_island/cc/app.py b/monkey/monkey_island/cc/app.py index e90091168..ead2ec327 100644 --- a/monkey/monkey_island/cc/app.py +++ b/monkey/monkey_island/cc/app.py @@ -18,7 +18,6 @@ from monkey_island.cc.resources.blackbox.monkey_blackbox_endpoint import MonkeyB from monkey_island.cc.resources.blackbox.telemetry_blackbox_endpoint import ( TelemetryBlackboxEndpoint, ) -from monkey_island.cc.resources.bootloader import Bootloader from monkey_island.cc.resources.client_run import ClientRun from monkey_island.cc.resources.configuration_export import ConfigurationExport from monkey_island.cc.resources.configuration_import import ConfigurationImport @@ -127,7 +126,6 @@ def init_api_resources(api): "/api/monkey/", "/api/monkey//", ) - api.add_resource(Bootloader, "/api/bootloader/") api.add_resource(LocalRun, "/api/local-monkey") api.add_resource(ClientRun, "/api/client-monkey") api.add_resource(Telemetry, "/api/telemetry", "/api/telemetry/") diff --git a/monkey/monkey_island/cc/resources/bootloader.py b/monkey/monkey_island/cc/resources/bootloader.py deleted file mode 100644 index b228b9eea..000000000 --- a/monkey/monkey_island/cc/resources/bootloader.py +++ /dev/null @@ -1,41 +0,0 @@ -import json -from typing import Dict - -import flask_restful -from flask import make_response, request - -from monkey_island.cc.services.bootloader import BootloaderService - - -class Bootloader(flask_restful.Resource): - - # Used by monkey. can't secure. - def post(self, os): - if os == "linux": - data = Bootloader._get_request_contents_linux(request.data) - elif os == "windows": - data = Bootloader._get_request_contents_windows(request.data) - else: - return make_response({"status": "OS_NOT_FOUND"}, 404) - - result = BootloaderService.parse_bootloader_telem(data) - - if result: - return make_response({"status": "RUN"}, 200) - else: - return make_response({"status": "ABORT"}, 200) - - @staticmethod - def _get_request_contents_linux(request_data: bytes) -> Dict[str, str]: - parsed_data = json.loads( - request_data.decode() - .replace('"\n', "") - .replace("\n", "") - .replace('NAME="', "") - .replace('":",', '":"",') - ) - return parsed_data - - @staticmethod - def _get_request_contents_windows(request_data: bytes) -> Dict[str, str]: - return json.loads(request_data.decode("utf-16", "ignore")) diff --git a/monkey/monkey_island/cc/services/node.py b/monkey/monkey_island/cc/services/node.py index ec787a39d..79c3408bf 100644 --- a/monkey/monkey_island/cc/services/node.py +++ b/monkey/monkey_island/cc/services/node.py @@ -1,6 +1,5 @@ import socket from datetime import datetime, timedelta -from typing import Dict from bson import ObjectId @@ -10,7 +9,7 @@ from monkey_island.cc.database import mongo from monkey_island.cc.models import Monkey from monkey_island.cc.services.edge.displayed_edge import DisplayedEdgeService from monkey_island.cc.services.edge.edge import EdgeService -from monkey_island.cc.services.utils.network_utils import is_local_ips, local_ip_addresses +from monkey_island.cc.services.utils.network_utils import local_ip_addresses from monkey_island.cc.services.utils.node_states import NodeStates @@ -209,59 +208,6 @@ class NodeService: ) return mongo.db.node.find_one({"_id": new_node_insert_result.inserted_id}) - @staticmethod - def create_node_from_bootloader_telem(bootloader_telem: Dict, will_monkey_run: bool): - new_node_insert_result = mongo.db.node.insert_one( - { - "ip_addresses": bootloader_telem["ips"], - "domain_name": bootloader_telem["hostname"], - "will_monkey_run": will_monkey_run, - "exploited": False, - "creds": [], - "os": { - "type": bootloader_telem["system"], - "version": bootloader_telem["os_version"], - }, - } - ) - return mongo.db.node.find_one({"_id": new_node_insert_result.inserted_id}) - - @staticmethod - def get_or_create_node_from_bootloader_telem( - bootloader_telem: Dict, will_monkey_run: bool - ) -> Dict: - if is_local_ips(bootloader_telem["ips"]): - raise NodeCreationException("Bootloader ran on island, no need to create new node.") - - new_node = mongo.db.node.find_one({"ip_addresses": {"$in": bootloader_telem["ips"]}}) - # Temporary workaround to not create a node after monkey finishes - monkey_node = mongo.db.monkey.find_one({"ip_addresses": {"$in": bootloader_telem["ips"]}}) - if monkey_node: - # Don't create new node, monkey node is already present - return monkey_node - - if new_node is None: - new_node = NodeService.create_node_from_bootloader_telem( - bootloader_telem, will_monkey_run - ) - if bootloader_telem["tunnel"]: - dst_node = NodeService.get_node_or_monkey_by_ip(bootloader_telem["tunnel"]) - else: - dst_node = NodeService.get_monkey_island_node() - src_label = NodeService.get_label_for_endpoint(new_node["_id"]) - dst_label = NodeService.get_label_for_endpoint(dst_node["id"]) - edge = EdgeService.get_or_create_edge( - src_node_id=new_node["_id"], - dst_node_id=dst_node["id"], - src_label=src_label, - dst_label=dst_label, - ) - edge.tunnel = bool(bootloader_telem["tunnel"]) - edge.ip_address = bootloader_telem["ips"][0] - edge.group = NodeStates.get_by_keywords(["island"]).value - edge.save() - return new_node - @staticmethod def get_or_create_node(ip_address, domain_name=""): new_node = mongo.db.node.find_one({"ip_addresses": ip_address}) diff --git a/monkey/tests/unit_tests/monkey_island/cc/resources/test_bootloader.py b/monkey/tests/unit_tests/monkey_island/cc/resources/test_bootloader.py deleted file mode 100644 index d8fd05451..000000000 --- a/monkey/tests/unit_tests/monkey_island/cc/resources/test_bootloader.py +++ /dev/null @@ -1,66 +0,0 @@ -from unittest import TestCase - -from monkey_island.cc.resources.bootloader import Bootloader - - -class TestBootloader(TestCase): - def test_get_request_contents_linux(self): - data_without_tunnel = ( - b'{"system":"linux", ' - b'"os_version":"NAME="Ubuntu"\n", ' - b'"glibc_version":"ldd (Ubuntu GLIBC 2.23-0ubuntu11) 2.23\n", ' - b'"hostname":"test-TEST", ' - b'"tunnel":false, ' - b'"ips": ["127.0.0.1", "10.0.2.15", "192.168.56.5"]}' - ) - data_with_tunnel = ( - b'{"system":"linux", ' - b'"os_version":"NAME="Ubuntu"\n", ' - b'"glibc_version":"ldd (Ubuntu GLIBC 2.23-0ubuntu11) 2.23\n", ' - b'"hostname":"test-TEST", ' - b'"tunnel":"192.168.56.1:5002", ' - b'"ips": ["127.0.0.1", "10.0.2.15", "192.168.56.5"]}' - ) - - result1 = Bootloader._get_request_contents_linux(data_without_tunnel) - self.assertTrue(result1["system"] == "linux") - self.assertTrue(result1["os_version"] == "Ubuntu") - self.assertTrue(result1["glibc_version"] == "ldd (Ubuntu GLIBC 2.23-0ubuntu11) 2.23") - self.assertTrue(result1["hostname"] == "test-TEST") - self.assertFalse(result1["tunnel"]) - self.assertTrue(result1["ips"] == ["127.0.0.1", "10.0.2.15", "192.168.56.5"]) - - result2 = Bootloader._get_request_contents_linux(data_with_tunnel) - self.assertTrue(result2["system"] == "linux") - self.assertTrue(result2["os_version"] == "Ubuntu") - self.assertTrue(result2["glibc_version"] == "ldd (Ubuntu GLIBC 2.23-0ubuntu11) 2.23") - self.assertTrue(result2["hostname"] == "test-TEST") - self.assertTrue(result2["tunnel"] == "192.168.56.1:5002") - self.assertTrue(result2["ips"] == ["127.0.0.1", "10.0.2.15", "192.168.56.5"]) - - def test_get_request_contents_windows(self): - windows_data = ( - b'{\x00"\x00s\x00y\x00s\x00t\x00e\x00m\x00"\x00:\x00"\x00w\x00i\x00n\x00d\x00o' - b'\x00w\x00s\x00"\x00,\x00 \x00"\x00o\x00s\x00_\x00v\x00e\x00r\x00s\x00i\x00o\x00n' - b'\x00"\x00:\x00"\x00w\x00i\x00n\x00d\x00o\x00w\x00s\x008\x00_\x00o\x00r\x00_\x00g\x00r' - b'\x00e\x00a\x00t\x00e\x00r\x00"\x00,\x00 ' - b'\x00"\x00h\x00o\x00s\x00t\x00n\x00a\x00m\x00e\x00"' - b'\x00:\x00"\x00D\x00E\x00S\x00K\x00T\x00O\x00P\x00-\x00P\x00J\x00H\x00U\x003\x006' - b'\x00B\x00"' - b'\x00,\x00 \x00"\x00t\x00u\x00n\x00n\x00e\x00l\x00"\x00:\x00f\x00a\x00l\x00s\x00e' - b"\x00,\x00 " - b'\x00"\x00i\x00p\x00s\x00"\x00:\x00 \x00[' - b'\x00"\x001\x009\x002\x00.\x001\x006\x008\x00.\x005' - b'\x006\x00.\x001\x00"\x00,\x00 ' - b'\x00"\x001\x009\x002\x00.\x001\x006\x008\x00.\x002\x004\x009' - b'\x00.\x001\x00"\x00,\x00 ' - b'\x00"\x001\x009\x002\x00.\x001\x006\x008\x00.\x002\x001\x007\x00.' - b'\x001\x00"\x00]\x00}\x00' - ) - - result = Bootloader._get_request_contents_windows(windows_data) - self.assertTrue(result["system"] == "windows") - self.assertTrue(result["os_version"] == "windows8_or_greater") - self.assertTrue(result["hostname"] == "DESKTOP-PJHU36B") - self.assertFalse(result["tunnel"]) - self.assertTrue(result["ips"] == ["192.168.56.1", "192.168.249.1", "192.168.217.1"]) diff --git a/vulture_allowlist.py b/vulture_allowlist.py index 2f7598379..0bb3ff44f 100644 --- a/vulture_allowlist.py +++ b/vulture_allowlist.py @@ -68,7 +68,6 @@ VSFTPD # unused variable (monkey/monkey_island/cc/services/reporting/issue_proc DRUPAL # unused variable (monkey/monkey_island/cc/services/reporting/issue_processing/exploit_processing/exploiter_descriptor_enum.py:48) POWERSHELL # (\monkey\monkey_island\cc\services\reporting\issue_processing\exploit_processing\exploiter_descriptor_enum.py:52) ExploiterDescriptorEnum.LOG4SHELL -_.do_POST # unused method (monkey/monkey_island/cc/server_utils/bootloader_server.py:26) PbaResults # unused class (monkey/monkey_island/cc/models/pba_results.py:4) internet_access # unused variable (monkey/monkey_island/cc/models/monkey.py:43) config_error # unused variable (monkey/monkey_island/cc/models/monkey.py:53) From db965e14f84fa3ad68419586b41d9102c79454e8 Mon Sep 17 00:00:00 2001 From: Shreya Malviya Date: Tue, 1 Feb 2022 13:57:54 +0530 Subject: [PATCH 06/15] Agent: Remove do_POST in HTTPConnectProxyHandler As per https://github.com/guardicore/monkey/pull/527, this code was added for the bootloader. Now that we're removing the bootloader, this is no longer needed. --- monkey/infection_monkey/transport/http.py | 30 ----------------------- 1 file changed, 30 deletions(-) diff --git a/monkey/infection_monkey/transport/http.py b/monkey/infection_monkey/transport/http.py index 910d79bf4..f8ca906b0 100644 --- a/monkey/infection_monkey/transport/http.py +++ b/monkey/infection_monkey/transport/http.py @@ -7,11 +7,7 @@ import urllib from logging import getLogger from urllib.parse import urlsplit -import requests - -import infection_monkey.control import infection_monkey.monkeyfs as monkeyfs -from common.common_consts.timeouts import SHORT_REQUEST_TIMEOUT from infection_monkey.network.tools import get_interface_to_target from infection_monkey.transport.base import TransportProxyBase, update_last_serve_time @@ -114,32 +110,6 @@ class FileServHTTPRequestHandler(http.server.BaseHTTPRequestHandler): class HTTPConnectProxyHandler(http.server.BaseHTTPRequestHandler): timeout = 30 # timeout with clients, set to None not to make persistent connection - def do_POST(self): - try: - content_length = int(self.headers["Content-Length"]) - post_data = self.rfile.read(content_length).decode() - logger.info("Received bootloader's request: {}".format(post_data)) - try: - dest_path = self.path - r = requests.post( # noqa: DUO123 - url=dest_path, - data=post_data, - verify=False, - proxies=infection_monkey.control.ControlClient.proxies, - timeout=SHORT_REQUEST_TIMEOUT, - ) - self.send_response(r.status_code) - except requests.exceptions.ConnectionError as e: - logger.error("Couldn't forward request to the island: {}".format(e)) - self.send_response(404) - except Exception as e: - logger.error("Failed to forward bootloader request: {}".format(e)) - finally: - self.end_headers() - self.wfile.write(r.content) - except Exception as e: - logger.error("Failed receiving bootloader telemetry: {}".format(e)) - def version_string(self): return "" From a7f821d20dc18b18f55c3644e9fb1c0a5c2704e7 Mon Sep 17 00:00:00 2001 From: Shreya Malviya Date: Tue, 1 Feb 2022 14:02:54 +0530 Subject: [PATCH 07/15] Agent: Remove unneeded function `is_local_ips` since bootloader telem was removed --- monkey/monkey_island/cc/services/utils/network_utils.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/monkey/monkey_island/cc/services/utils/network_utils.py b/monkey/monkey_island/cc/services/utils/network_utils.py index fc991a1c0..a37cd3250 100644 --- a/monkey/monkey_island/cc/services/utils/network_utils.py +++ b/monkey/monkey_island/cc/services/utils/network_utils.py @@ -1,10 +1,8 @@ import array -import collections import ipaddress import socket import struct import sys -from typing import List from netifaces import AF_INET, ifaddresses, interfaces from ring import lru @@ -53,11 +51,6 @@ else: return result -def is_local_ips(ips: List) -> bool: - filtered_local_ips = [ip for ip in local_ip_addresses() if not ip.startswith("169.254")] - return collections.Counter(ips) == collections.Counter(filtered_local_ips) - - # The local IP addresses list should not change often. Therefore, we can cache the result and # never call this function # more than once. This stopgap measure is here since this function is called a lot of times From a8956a18ff8f2665b3b8861416fcc4eb40e827b9 Mon Sep 17 00:00:00 2001 From: Shreya Malviya Date: Tue, 1 Feb 2022 14:09:19 +0530 Subject: [PATCH 08/15] Island: Remove 'old' node states now that the bootloader is removed --- .../cc/services/utils/node_states.py | 2 -- .../cc/ui/src/images/nodes/monkey_linux_old.png | Bin 4295 -> 0 bytes .../ui/src/images/nodes/monkey_windows_old.png | Bin 3640 -> 0 bytes 3 files changed, 2 deletions(-) delete mode 100644 monkey/monkey_island/cc/ui/src/images/nodes/monkey_linux_old.png delete mode 100644 monkey/monkey_island/cc/ui/src/images/nodes/monkey_windows_old.png diff --git a/monkey/monkey_island/cc/services/utils/node_states.py b/monkey/monkey_island/cc/services/utils/node_states.py index bf5f2211a..64baea56b 100644 --- a/monkey/monkey_island/cc/services/utils/node_states.py +++ b/monkey/monkey_island/cc/services/utils/node_states.py @@ -28,8 +28,6 @@ class NodeStates(Enum): MONKEY_WINDOWS_RUNNING = "monkey_windows_running" MONKEY_WINDOWS_STARTING = "monkey_windows_starting" MONKEY_LINUX_STARTING = "monkey_linux_starting" - MONKEY_WINDOWS_OLD = "monkey_windows_old" - MONKEY_LINUX_OLD = "monkey_linux_old" @staticmethod def get_by_keywords(keywords: List) -> NodeStates: diff --git a/monkey/monkey_island/cc/ui/src/images/nodes/monkey_linux_old.png b/monkey/monkey_island/cc/ui/src/images/nodes/monkey_linux_old.png deleted file mode 100644 index 1f6da00f2dbced4de34e88c42d203d2ec1bc9a00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4295 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 h{3q$=h>$%_ Date: Tue, 1 Feb 2022 14:09:57 +0530 Subject: [PATCH 09/15] Project: Remove deleted constants from Vulture's allowlist --- vulture_allowlist.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/vulture_allowlist.py b/vulture_allowlist.py index 0bb3ff44f..d9ae1d8af 100644 --- a/vulture_allowlist.py +++ b/vulture_allowlist.py @@ -48,8 +48,6 @@ MONKEY_WINDOWS # unused variable (monkey/monkey_island/cc/services/utils/node_s MONKEY_WINDOWS_RUNNING # unused variable (monkey/monkey_island/cc/services/utils/node_states.py:28) MONKEY_WINDOWS_STARTING # unused variable (monkey/monkey_island/cc/services/utils/node_states.py:29) MONKEY_LINUX_STARTING # unused variable (monkey/monkey_island/cc/services/utils/node_states.py:30) -MONKEY_WINDOWS_OLD # unused variable (monkey/monkey_island/cc/services/utils/node_states.py:31) -MONKEY_LINUX_OLD # unused variable (monkey/monkey_island/cc/services/utils/node_states.py:32) _.credential_type # unused attribute (monkey/monkey_island/cc/services/reporting/issue_processing/exploit_processing/processors/cred_exploit.py:19) _.credential_type # unused attribute (monkey/monkey_island/cc/services/reporting/issue_processing/exploit_processing/processors/cred_exploit.py:22) _.credential_type # unused attribute (monkey/monkey_island/cc/services/reporting/issue_processing/exploit_processing/processors/cred_exploit.py:25) From 28875fd55f1e28d11d460c18d97042c83a277b08 Mon Sep 17 00:00:00 2001 From: Ilija Lazoroski Date: Tue, 1 Feb 2022 11:17:46 +0100 Subject: [PATCH 10/15] Agent: Change pyinstaller version to 4.2 Remove altgraph and importlib-metadata since upstream pyinstaller includes them. --- monkey/infection_monkey/Pipfile | 5 +- monkey/infection_monkey/Pipfile.lock | 225 ++++++++------------------- 2 files changed, 69 insertions(+), 161 deletions(-) diff --git a/monkey/infection_monkey/Pipfile b/monkey/infection_monkey/Pipfile index 342677316..b92fe8f11 100644 --- a/monkey/infection_monkey/Pipfile +++ b/monkey/infection_monkey/Pipfile @@ -5,9 +5,8 @@ name = "pypi" [packages] cryptography = "==2.5" # We can't build 32bit ubuntu12 binary with newer versions of cryptography -pyinstaller = "==3.6" +pyinstaller = "==4.2" impacket = ">=0.9" -importlib-metadata = "==4.0.1" # Required to build docker with our pyinstaller branch ipaddress = ">=1.0.23" netifaces = ">=0.10.9" odict = "==1.7.0" @@ -22,8 +21,6 @@ ScoutSuite = {git = "git://github.com/guardicode/ScoutSuite"} pyopenssl = "==19.0.0" # We can't build 32bit ubuntu12 binary with newer versions of pyopenssl pypsrp = "*" typing-extensions = "*" # Allows us to use 3.9 typing features on 3.7 project -pycryptodome = "*" # Used in common/utils/shellcode_obfuscator.py -altgraph = "*" # Required for pyinstaller branch, without it agents fail to build pysmb = "*" "WinSys-3.x" = "*" ldaptor = "*" diff --git a/monkey/infection_monkey/Pipfile.lock b/monkey/infection_monkey/Pipfile.lock index ce3ba9c21..9a5d6dbc6 100644 --- a/monkey/infection_monkey/Pipfile.lock +++ b/monkey/infection_monkey/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "945e6a45bb4d4e87d66a82b788937b323596e4366daa44f743bca6eaf193045d" + "sha256": "3790c3815ab19935a2879019cf4fe90dcddc1d6e073651249374fb6bb8c14e9e" }, "pipfile-spec": 6, "requires": { @@ -29,7 +29,6 @@ "sha256:743628f2ac6a7c26f5d9223c91ed8ecbba535f506f4b6f558885a8a56a105857", "sha256:ebf2269361b47d97b3b88e696439f6e4cbc607c17c51feb1754f90fb79839158" ], - "index": "pypi", "version": "==0.17.2" }, "asn1crypto": { @@ -48,11 +47,11 @@ }, "asysocks": { "hashes": [ - "sha256:9b33fe5ab6853ed2ac9eb1652f4a8593a78ad5ba258bd10fa4b81801e38729c2", - "sha256:a0a20e583fedb08c962a68dd50764a34424c41bd59a0ae952d8bb368a03eaa45" + "sha256:5ec0582252b0085d9337d13c6b03ab7fd062e487070667f9140e6972bd9db256", + "sha256:b97ac905cd4ca1e7a8e7c295f9cb22ced5dfd3f17e888e71cbf05a1d67a4d393" ], "markers": "python_version >= '3.6'", - "version": "==0.1.2" + "version": "==0.1.6" }, "attrs": { "hashes": [ @@ -87,19 +86,19 @@ }, "boto3": { "hashes": [ - "sha256:49499acf3f1dbb5f09eb93abfeb4025cd76fb7880c16a01a2901dfa335496f0d", - "sha256:d2fce99e42cb7cb263f3ff272bc707aa6a66bc6ab30d90bf0ff6cbdddd867cfa" + "sha256:a2ffce001160d7e7c72a90c3084700d50eb64ea4a3aae8afe21566971d1fd611", + "sha256:d7effba509d7298ef49316ba2da7a2ea115f2a7ff691f875f6354666663cf386" ], "markers": "python_version >= '3.6'", - "version": "==1.20.42" + "version": "==1.20.46" }, "botocore": { "hashes": [ - "sha256:a58f1e559ff2c65495f55ac48217afefb56f2d709d30f7377c40287e8c5765d0", - "sha256:e2e5509934e634a374afa560de4ddc770bb562c7259cb63cd92aa7e54f943bc1" + "sha256:354bce55e5adc8e2fe106acfd455ce448f9b920d7b697d06faa8cf200fd6566b", + "sha256:38dd4564839f531725b667db360ba7df2125ceb3752b0ba12759c3e918015b95" ], "markers": "python_version >= '3.6'", - "version": "==1.23.42" + "version": "==1.23.46" }, "certifi": { "hashes": [ @@ -173,11 +172,11 @@ }, "charset-normalizer": { "hashes": [ - "sha256:876d180e9d7432c5d1dfd4c5d26b72f099d503e8fcc0feb7532c9289be60fcbd", - "sha256:cb957888737fc0bbcd78e3df769addb41fd1ff8cf950dc9e7ad7793f1bf44455" + "sha256:2842d8f5e82a1f6aa437380934d5e1cd4fcf2003b06fed6940769c164a480a45", + "sha256:98398a9d69ee80548c762ba991a4728bfc3836768ed226b3945908d1a688371c" ], "markers": "python_version >= '3'", - "version": "==2.0.10" + "version": "==2.0.11" }, "cheroot": { "hashes": [ @@ -211,14 +210,6 @@ "markers": "python_version >= '3.6'", "version": "==8.0.3" }, - "colorama": { - "hashes": [ - "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b", - "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2" - ], - "markers": "platform_system == 'Windows' and sys_platform == 'win32' and platform_system == 'Windows'", - "version": "==0.4.4" - }, "coloredlogs": { "hashes": [ "sha256:34fad2e342d5a559c31b6c889e8d14f97cb62c47d9a2ae7b5ed14ea10a79eff8", @@ -283,9 +274,9 @@ }, "httpagentparser": { "hashes": [ - "sha256:ef763d31993dd761825acee6c8b34be32b95cf1675d1c73c3cd35f9e52831b26" + "sha256:a190dfdc5e63b2f1c87729424b19cbc49263d6a1fb585a16ac1c9d9ce127a4bf" ], - "version": "==1.9.1" + "version": "==1.9.2" }, "humanfriendly": { "hashes": [ @@ -319,11 +310,11 @@ }, "importlib-metadata": { "hashes": [ - "sha256:8c501196e49fb9df5df43833bdb1e4328f64847763ec8a50703148b73784d581", - "sha256:d7eb1dea6d6a6086f8be21784cc9e3bcfa55872b52309bc5fad53a8ea444465d" + "sha256:899e2a40a8c4a1aec681feef45733de8a6c58f3f6a0dbed2eb6574b4387a77b6", + "sha256:951f0d8a5b7260e9db5e41d429285b5f451e928479f19d80818878527d36e95e" ], - "index": "pypi", - "version": "==4.0.1" + "markers": "python_version < '3.8'", + "version": "==4.10.1" }, "importlib-resources": { "hashes": [ @@ -523,11 +514,11 @@ }, "minikerberos": { "hashes": [ - "sha256:30d0fbaf81a4c7d46710c80497ad905c562bd4d125a22850d87794f61ca1b31f", - "sha256:ef64434457cf1c89d8f5d6ae91748775ac8adfa917ddc21d12838d3c43e6e979" + "sha256:eba89d5c649241a3367839ebd1c0333b9a9e4fe514746e246a6a1f2cb7bde26e", + "sha256:f556a6015904147c3302e9038b49f766c975df6aeb1725027cd7fc68ba993864" ], "markers": "python_version >= '3.6'", - "version": "==0.2.14" + "version": "==0.2.16" }, "more-itertools": { "hashes": [ @@ -634,11 +625,11 @@ }, "prompt-toolkit": { "hashes": [ - "sha256:1bb05628c7d87b645974a1bad3f17612be0c29fa39af9f7688030163f680bad6", - "sha256:e56f2ff799bacecd3e88165b1e2f5ebf9bcd59e80e06d395fa0cc4b8bd7bb506" + "sha256:4bcf119be2200c17ed0d518872ef922f1de336eb6d1ddbd1e089ceb6447d97c6", + "sha256:a51d41a6a45fd9def54365bca8f0402c8f182f2b6f7e29c74d55faeb9fb38ac4" ], "markers": "python_full_version >= '3.6.2'", - "version": "==3.0.24" + "version": "==3.0.26" }, "psutil": { "hashes": [ @@ -722,89 +713,55 @@ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==2.21" }, - "pycryptodome": { - "hashes": [ - "sha256:008ef2c631f112cd5a58736e0b29f4a28b4bb853e68878689f8b476fd56e0691", - "sha256:073dedf0f9c490ae22ca081b86357646ac9b76f3e2bd89119d137fc697a9e3b6", - "sha256:0896d5d15ffe584d46cb9b69a75cf14a2bc8f6daf635b7bf16c1b041342a44b1", - "sha256:1fb7a6f222072412f320b9e48d3ce981920efbfce37b06d028ec9bd94093b37f", - "sha256:4f1b594d0cf35bd12ec4244df1155a7f565bf6e6245976ac36174c1564688c90", - "sha256:51ebe9624ad0a0b4da1aaaa2d43aabadf8537737fd494cee0ffa37cd6326de02", - "sha256:681ac47c538c64305d710eaed2bb49532f62b3f4c93aa7c423c520df981392e5", - "sha256:702446a012fd9337b9327d168bb0c7dc714eb93ad361f6f61af9ca8305a301f1", - "sha256:720fafdf3e5c5de93039d8308f765cc60b8e9e7e852ad7135aa65dd89238191f", - "sha256:72de8c4d71e6b11d54528bb924447fa4fdabcbb3d76cc0e7f61d3b6075def6b3", - "sha256:765b8b16bc1fd699e183dde642c7f2653b8f3c9c1a50051139908e9683f97732", - "sha256:7a8b0e526ff239b4f4c61dd6898e2474d609843ffc437267f3a27ddff626e6f6", - "sha256:7b3478a187d897f003b2aa1793bcc59463e8d57a42e2aafbcbbe9cd47ec46863", - "sha256:857c16bffd938254e3a834cd6b2a755ed24e1a953b1a86e33da136d3e4c16a6f", - "sha256:88d6d54e83cf9bbd665ce1e7b9079983ee2d97a05f42e0569ff00a70f1dd8b1e", - "sha256:95bacf9ff7d1b90bba537d3f5f6c834efe6bfbb1a0195cb3573f29e6716ef08d", - "sha256:9c8e0e6c5e982699801b20fa74f43c19aa080d2b53a39f3c132d35958e153bd4", - "sha256:9ea70f6c3f6566159e3798e4593a4a8016994a0080ac29a45200615b45091a1b", - "sha256:b3af53dddf848afb38b3ac2bae7159ddad1feb9bac14aa3acec6ef1797b82f8d", - "sha256:ca6db61335d07220de0b665bfee7b8e9615b2dfc67a54016db4826dac34c2dd2", - "sha256:cb9453c981554984c6f5c5ce7682d7286e65e2173d7416114c3593a977a01bf5", - "sha256:d92a5eddffb0ad39f582f07c1de26e9daf6880e3e782a94bb7ebaf939567f8bf", - "sha256:deede160bdf87ddb71f0a1314ad5a267b1a960be314ea7dc6b7ad86da6da89a3", - "sha256:e3affa03c49cce7b0a9501cc7f608d4f8e61fb2522b276d599ac049b5955576d", - "sha256:e420cdfca73f80fe15f79bb34756959945231a052440813e5fce531e6e96331a", - "sha256:e468724173df02f9d83f3fea830bf0d04aa291b5add22b4a78e01c97aab04873", - "sha256:e5d72be02b17e6bd7919555811264403468d1d052fa67c946e402257c3c29a27", - "sha256:eec02d9199af4b1ccfe1f9c587691a07a1fa39d949d2c1dc69d079ab9af8212f", - "sha256:f5457e44d3f26d9946091e92b28f3e970a56538b96c87b4b155a84e32a40b7b5", - "sha256:f7aad304575d075faf2806977b726b67da7ba294adc97d878f92a062e357a56a" - ], - "index": "pypi", - "version": "==3.13.0" - }, "pycryptodomex": { "hashes": [ - "sha256:00e37d478c0f040639ab41a9d5280291ad2b3b5f25b9aad5baa1d5ecb578a3f6", - "sha256:04a38a7dc484f5e3152a69e4eab89d9340c2ad3b7c4a27d2ee256e5fb878c469", - "sha256:05e0e3b78b7ccc0b7c5f88596d51fdc8533adb91070b93e18cec12ca3b43deb3", - "sha256:0ec86fca2114e8c58fe6bfc7e04ee91568a813139dcf4334819aa44876764bcf", - "sha256:182962b3612c0d12748fa770f1ef0556ba8ba2c442834450e08acb31d9e6d2ed", - "sha256:2f2bcee2ef59597bfcb755eef2c98294094c1c9b64e9b9195cc9e71be83adb92", - "sha256:2f7db8d85294c1123e700097af407425fd4c9e6c58b688f391de7053c6a60317", - "sha256:3b7656189c259bb2b838559f0a11b533d4d18409ab6d9119c00bae436c3d3e34", - "sha256:5a2014598ceb19c34f14815a26536e5cc24167ea4d402f0aec2a52b18960c668", - "sha256:63443230247837dd03c5d4028cae5cb2e6793a9ae110e321798bee48a04ff3e9", - "sha256:68fb861b41a889c2efdf2795b0d46aa05d4748543bc4e0bca5886c929c7cbdef", - "sha256:6b3c06e6d235f475395a7e150f2e562a3e9d749fb40c6d81240596f73809346c", - "sha256:6d50723984ba802904618ef5bfe257a0f9644e76821d323f79f27be5adb9ece7", - "sha256:7fb188c9a0f69d4f7b607780641ef7aec7f02a8dad689512b17bdf04c96ce6e3", - "sha256:7fb9d1ab6a10cfc8c8c7e11f004e01c8a1beff5fd4118370d95110735cc23117", - "sha256:80eedc23c4c4d3655c6a7d315a01f0e9d460c7070c5c3af4952937b4f2c0da6f", - "sha256:9fa76261100b450e5aca2990ba982e5294ba383f653da041a71b4ac1cbaed1ff", - "sha256:b11331510cfd08ec4416f37dc8f072541d7b7240ba924c71288f7218aad36bdf", - "sha256:b4240991748ae0f57a0120b8d905b2d9f835fee02968fc11faec929ef6915ee6", - "sha256:b7b059517d84c57f25c6fd3b2e03a1b2945df2e585b96109bcd11e56f6c9e610", - "sha256:b975ce778ea2c65f399ab889a661e118bb68b85db47d93e0442eb1ba1f554794", - "sha256:c87f62de9e167031ad4179efb1fda4012bb6f7363472a61254e4426bda6bcb64", - "sha256:ccd301d2e71d243b0fad8c4642116c538d7d405d35b6026cf4dcee463a667a2e", - "sha256:dce2bfd0f285c3fcff89e4239c55f5fbe664ff435ee45abfc154aac0f222ab14", - "sha256:dfb8bcd45e504e1c26f0bfc404f3edd08f8c8057dfe04fbf6159adc8694ff97a", - "sha256:e1900d7f16a03b869be3572e7664757c14316329a4d79ecee5a0083fad8c81b0", - "sha256:e2ddfbcb2c4c7cb8f79db49e284280be468699c701b92d30fd1e46a786b39f5b", - "sha256:eb4eea028a7ad28458abf8b98ae14af2fd9baeb327a0adb6af05a488e4d9e9a1", - "sha256:f3a29bb51e5f9b46004b5be16bcbe4e1b2d2754cbe201e1a0b142c307bdf4c73", - "sha256:f553abcb3572242fed87e308a6b91a9bc5a74b801b5d093969391b0500be718b" + "sha256:00eb17ee2b8eb9d84df37d54bc7070ff45903b90535558c2e0ddb5e6957521d3", + "sha256:05b36726ce5521ce0feb25ea11e866261089edd7fad44df4ced9f7f45a9d4c3b", + "sha256:110b319189915a66d14df13d233a2dbb54f00df21f3167de1cad340bf4dd88bd", + "sha256:15e6f5b4a81109eb8e9a02c954fe119f6c57836fd55a9891ba703ddfbd690587", + "sha256:1b07a13ed73d00a97af7c3733b807007d2249cd236a33955a7dec1939c232b28", + "sha256:2040a22a30780da743835c7c71307558688065d6c22e18ac3e44082dc3323d8f", + "sha256:264a701bb6e8aedf4b71bcb9eb83b93020041e96112ccfe873a16964d41ade74", + "sha256:2d8bda8f949b79b78b293706aa7fc1e5c171c62661252bfdd5d12c70acd03282", + "sha256:2e2da1eabb426cbeb4922c981bb843f36427f8365ef7e46bc581a55d7ea67643", + "sha256:3ad75e24a0e25396901273a9a2aaba0286fa74703e5b61731942f6914a1e1cbe", + "sha256:3c06abf17c68cf87c4e81e1745f0afbe4427413684a122a9d044a8a1d3c6d959", + "sha256:3c195eecd43e48d0a06267df6945958f5f566eef160a5b01c519434cfa6d368a", + "sha256:3c9ee5e77dd9cb19fe09765b6c02e3784cdbd2e5ecfbc67c8e9628073f79b981", + "sha256:484ad0f50fd49bec4d2b8c0e5a3ad70e278ed3390bfd5c4515dc896f31b45d6c", + "sha256:4b046c3d50fe4bb57386567ff47a588b1bbe1ddf3d9e2b23aede09fa97511f5f", + "sha256:50684f16b12f1dcca8018d2711fb87044c74038ce9322d36f6ee9d09fcda7e6f", + "sha256:6940b6730bab7128c993b562abf018560aa5b861da92854cf050b5f96d4713df", + "sha256:76fe9ad943480507952cd7c96c20f6c8af78145f944cb66bbba63f2872d9988e", + "sha256:7bcc5d3904abe5cfac5acc67679e330b0402473e839f94b59e13efdc2c2945d5", + "sha256:8310782ac84fa1df93703081af6791549451a380ad88670c2484f75e26c6485f", + "sha256:88eb239d6af71ba2098a4cfea516add37881d55b76b38d9e297f77a65bb9a8cf", + "sha256:9afea78c31f3714b06673d2c5b8874f31c19c03258645733546a320da2e6df23", + "sha256:a11884621c2a5fe241ccf2adf34e4fdde162e91fbc3207f0a0db122ad2b7a061", + "sha256:b0277a201196b7825b21a405e0a70167f277b8d5666031e65c9af7a715cb0833", + "sha256:b5ff95687c4008f76091849e5333692e6a54a93399cd8fda7e1ba523734136f4", + "sha256:c565b89fb91ecb60273b2dcedb5149b48a1ec4227cef8c63fd77ec0f33eaf75a", + "sha256:d689b368ca8b3ec1e60cc609eae14d4e352d10fe807ca9906f77f0712ab05a37", + "sha256:f3bb1e722ad57de1999c8db54b58507b47771de4a294115c00f785f1d5913ec1", + "sha256:fbff384c2080106b3f5f7cfa96728f02e627be7f7cd1657d9cf63300a16d0864", + "sha256:fd2657134b633523db551b96b095387083a459d77e93b9cc888c9f13edb7a6f6" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", - "version": "==3.13.0" + "version": "==3.14.0" }, "pyinstaller": { - "git": "git://github.com/guardicore/pyinstaller", - "ref": "913259a5cd2baece06b0eed3618eb75b1bc7fad6" + "hashes": [ + "sha256:f5c0eeb2aa663cce9a5404292c0195011fa500a6501c873a466b2e8cad3c950c" + ], + "index": "pypi", + "version": "==4.2" }, "pyinstaller-hooks-contrib": { "hashes": [ - "sha256:27558072021857d89524c42136feaa2ffe4f003f1bdf0278f9b24f6902c1759c", - "sha256:892310e6363655838485ee748bf1c5e5cade7963686d9af8650ee218a3e0b031" + "sha256:29f0bd8fbb2ff6f2df60a0c147e5b5ad65ae5c1a982d90641a5f712de03fa161", + "sha256:61b667f51b2525377fae30793f38fd9752a08032c72b209effabf707c840cc38" ], - "index": "pypi", - "version": "==2021.1" + "version": "==2022.0" }, "pymssql": { "hashes": [ @@ -875,11 +832,11 @@ }, "pypsrp": { "hashes": [ - "sha256:c0912096858ff8c53a3cf22cc46c3ce20e6ec5e2deade342088e87a81dbadac8", - "sha256:d7144ad7c798a4dcded20a71c712d63eb4bfb32debe62f3a98f01481384a5558" + "sha256:50d0dce9bf2cb852e3395029e40501ca1f5466ccc5c683c960ce527117676c20", + "sha256:84e8ee098c87858b0a8ba84deec674ebf3f286d3159cf3da9d6a4bfdd06bf3af" ], "index": "pypi", - "version": "==0.7.0" + "version": "==0.8.0" }, "pypykatz": { "hashes": [ @@ -889,15 +846,6 @@ "index": "pypi", "version": "==0.3.12" }, - "pyreadline": { - "hashes": [ - "sha256:4530592fc2e85b25b1a9f79664433da09237c1a270e4d78ea5aa3a2c7229e2d1", - "sha256:65540c21bfe14405a3a77e4c085ecfce88724743a4ead47c66b84defcf82c32e", - "sha256:9ce5fa65b8992dfa373bddc5b6e0864ead8f291c94fbfec05fbd5c836162e67b" - ], - "markers": "python_version < '3.8' and sys_platform == 'win32'", - "version": "==2.1" - }, "pysmb": { "hashes": [ "sha256:298605b8f467ce15b412caaf9af331c135e88fa2172333af14b1b2916361cb6b" @@ -938,24 +886,6 @@ ], "version": "==2021.3" }, - "pywin32": { - "hashes": [ - "sha256:2a09632916b6bb231ba49983fe989f2f625cea237219530e81a69239cd0c4559", - "sha256:51cb52c5ec6709f96c3f26e7795b0bf169ee0d8395b2c1d7eb2c029a5008ed51", - "sha256:5f9ec054f5a46a0f4dfd72af2ce1372f3d5a6e4052af20b858aa7df2df7d355b", - "sha256:6fed4af057039f309263fd3285d7b8042d41507343cd5fa781d98fcc5b90e8bb", - "sha256:793bf74fce164bcffd9d57bb13c2c15d56e43c9542a7b9687b4fccf8f8a41aba", - "sha256:79cbb862c11b9af19bcb682891c1b91942ec2ff7de8151e2aea2e175899cda34", - "sha256:7d3271c98434617a11921c5ccf74615794d97b079e22ed7773790822735cc352", - "sha256:aad484d52ec58008ca36bd4ad14a71d7dd0a99db1a4ca71072213f63bf49c7d9", - "sha256:b1675d82bcf6dbc96363fca747bac8bff6f6e4a447a4287ac652aa4b9adc796e", - "sha256:c268040769b48a13367221fced6d4232ed52f044ffafeda247bd9d2c6bdc29ca", - "sha256:d9b5d87ca944eb3aa4cd45516203ead4b37ab06b8b777c54aedc35975dec0dee", - "sha256:fcf44032f5b14fcda86028cdf49b6ebdaea091230eb0a757282aa656e4732439" - ], - "markers": "python_version < '3.10' and sys_platform == 'win32' and implementation_name == 'cpython'", - "version": "==303" - }, "requests": { "hashes": [ "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61", @@ -1024,24 +954,6 @@ "markers": "python_full_version >= '3.6.7'", "version": "==21.7.0" }, - "twisted-iocpsupport": { - "hashes": [ - "sha256:306becd6e22ab6e8e4f36b6bdafd9c92e867c98a5ce517b27fdd27760ee7ae41", - "sha256:3c61742cb0bc6c1ac117a7e5f422c129832f0c295af49e01d8a6066df8cfc04d", - "sha256:72068b206ee809c9c596b57b5287259ea41ddb4774d86725b19f35bf56aa32a9", - "sha256:7d972cfa8439bdcb35a7be78b7ef86d73b34b808c74be56dfa785c8a93b851bf", - "sha256:81b3abe3527b367da0220482820cb12a16c661672b7bcfcde328902890d63323", - "sha256:851b3735ca7e8102e661872390e3bce88f8901bece95c25a0c8bb9ecb8a23d32", - "sha256:985c06a33f5c0dae92c71a036d1ea63872ee86a21dd9b01e1f287486f15524b4", - "sha256:9dbb8823b49f06d4de52721b47de4d3b3026064ef4788ce62b1a21c57c3fff6f", - "sha256:b435857b9efcbfc12f8c326ef0383f26416272260455bbca2cd8d8eca470c546", - "sha256:b76b4eed9b27fd63ddb0877efdd2d15835fdcb6baa745cb85b66e5d016ac2878", - "sha256:b9fed67cf0f951573f06d560ac2f10f2a4bbdc6697770113a2fc396ea2cb2565", - "sha256:bf4133139d77fc706d8f572e6b7d82871d82ec7ef25d685c2351bdacfb701415" - ], - "markers": "platform_system == 'Windows'", - "version": "==1.0.2" - }, "typing-extensions": { "hashes": [ "sha256:4ca091dea149f945ec56afb48dae714f21e8692ef22a395223bcd328961b6a0e", @@ -1086,7 +998,7 @@ "sha256:a2ad9c0f6d70f6e0e0d1f54b8582054c62d8a09f346b5ccaf55da68628ca10e1", "sha256:a64624a25fc2d3663a2c5376c5291f3c7531e9c8051571de9ca9db8bf25746c2" ], - "markers": "platform_system == 'Windows'", + "markers": "python_version >= '3.6'", "version": "==0.0.9" }, "winsys-3.x": { @@ -1101,7 +1013,6 @@ "sha256:1d6b085e5c445141c475476000b661f60fff1aaa19f76bf82b7abb92e0ff4942", "sha256:b6a6be5711b1b6c8d55bda7a8befd75c48c12b770b9d227d31c1737dbf0d40a6" ], - "index": "pypi", "markers": "sys_platform == 'win32'", "version": "==1.5.1" }, From 79ab06e575315e115cad2598001eb23b8acbf5d0 Mon Sep 17 00:00:00 2001 From: vakarisz Date: Tue, 1 Feb 2022 13:02:46 +0200 Subject: [PATCH 11/15] Island, UI: remove starting node states Since bootloader is gone, nothing sets the state of the node to "starting" --- .../cc/services/utils/node_states.py | 4 ---- .../nodes/island_manual_linux_starting.png | Bin 5733 -> 0 bytes .../nodes/island_manual_windows_starting.png | Bin 5070 -> 0 bytes .../nodes/island_monkey_linux_starting.png | Bin 5675 -> 0 bytes .../nodes/island_monkey_windows_starting.png | Bin 5014 -> 0 bytes .../src/images/nodes/manual_linux_starting.png | Bin 4186 -> 0 bytes .../src/images/nodes/manual_windows_starting.png | Bin 3289 -> 0 bytes .../src/images/nodes/monkey_linux_starting.png | Bin 2591 -> 0 bytes .../src/images/nodes/monkey_windows_starting.png | Bin 3210 -> 0 bytes 9 files changed, 4 deletions(-) delete mode 100644 monkey/monkey_island/cc/ui/src/images/nodes/island_manual_linux_starting.png delete mode 100644 monkey/monkey_island/cc/ui/src/images/nodes/island_manual_windows_starting.png delete mode 100644 monkey/monkey_island/cc/ui/src/images/nodes/island_monkey_linux_starting.png delete mode 100644 monkey/monkey_island/cc/ui/src/images/nodes/island_monkey_windows_starting.png delete mode 100644 monkey/monkey_island/cc/ui/src/images/nodes/manual_linux_starting.png delete mode 100644 monkey/monkey_island/cc/ui/src/images/nodes/manual_windows_starting.png delete mode 100644 monkey/monkey_island/cc/ui/src/images/nodes/monkey_linux_starting.png delete mode 100644 monkey/monkey_island/cc/ui/src/images/nodes/monkey_windows_starting.png diff --git a/monkey/monkey_island/cc/services/utils/node_states.py b/monkey/monkey_island/cc/services/utils/node_states.py index 64baea56b..0d6371111 100644 --- a/monkey/monkey_island/cc/services/utils/node_states.py +++ b/monkey/monkey_island/cc/services/utils/node_states.py @@ -14,10 +14,8 @@ class NodeStates(Enum): ISLAND = "island" ISLAND_MONKEY_LINUX = "island_monkey_linux" ISLAND_MONKEY_LINUX_RUNNING = "island_monkey_linux_running" - ISLAND_MONKEY_LINUX_STARTING = "island_monkey_linux_starting" ISLAND_MONKEY_WINDOWS = "island_monkey_windows" ISLAND_MONKEY_WINDOWS_RUNNING = "island_monkey_windows_running" - ISLAND_MONKEY_WINDOWS_STARTING = "island_monkey_windows_starting" MANUAL_LINUX = "manual_linux" MANUAL_LINUX_RUNNING = "manual_linux_running" MANUAL_WINDOWS = "manual_windows" @@ -26,8 +24,6 @@ class NodeStates(Enum): MONKEY_LINUX_RUNNING = "monkey_linux_running" MONKEY_WINDOWS = "monkey_windows" MONKEY_WINDOWS_RUNNING = "monkey_windows_running" - MONKEY_WINDOWS_STARTING = "monkey_windows_starting" - MONKEY_LINUX_STARTING = "monkey_linux_starting" @staticmethod def get_by_keywords(keywords: List) -> NodeStates: diff --git a/monkey/monkey_island/cc/ui/src/images/nodes/island_manual_linux_starting.png b/monkey/monkey_island/cc/ui/src/images/nodes/island_manual_linux_starting.png deleted file mode 100644 index aebe6f962859ae9a065e60685bfc330a34e89565..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5733 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 diff --git a/monkey/monkey_island/cc/ui/src/images/nodes/island_manual_windows_starting.png b/monkey/monkey_island/cc/ui/src/images/nodes/island_manual_windows_starting.png deleted file mode 100644 index c1f9a30bd0b086dddf60ef55dd9c19336c4353a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5070 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 BAfx~Q diff --git a/monkey/monkey_island/cc/ui/src/images/nodes/island_monkey_linux_starting.png b/monkey/monkey_island/cc/ui/src/images/nodes/island_monkey_linux_starting.png deleted file mode 100644 index 7654982f341c117e5d8c332008e5b8464543486d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5675 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 diff --git a/monkey/monkey_island/cc/ui/src/images/nodes/island_monkey_windows_starting.png b/monkey/monkey_island/cc/ui/src/images/nodes/island_monkey_windows_starting.png deleted file mode 100644 index c6d2ace5a6b490d166ab5605097eb42e3e0b9bd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5014 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 diff --git a/monkey/monkey_island/cc/ui/src/images/nodes/manual_linux_starting.png b/monkey/monkey_island/cc/ui/src/images/nodes/manual_linux_starting.png deleted file mode 100644 index 882acae59ba26f208982c988d7eea653d9dbf423..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4186 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 btl;;4zxnv$OdN)_c(9patc=Rhm%;x4^zr9k diff --git a/monkey/monkey_island/cc/ui/src/images/nodes/monkey_linux_starting.png b/monkey/monkey_island/cc/ui/src/images/nodes/monkey_linux_starting.png deleted file mode 100644 index 1991dd9b0f7158c16b8ec384c2134fa4c45d27fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2591 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 diff --git a/monkey/monkey_island/cc/ui/src/images/nodes/monkey_windows_starting.png b/monkey/monkey_island/cc/ui/src/images/nodes/monkey_windows_starting.png deleted file mode 100644 index 0cea18d57ff761c834b417a789493f1e6efb8d56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3210 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 fs4Oy>e8Mu`u>J5cJLdrNrvNZEL>ZLn+Y Date: Tue, 1 Feb 2022 13:28:13 +0200 Subject: [PATCH 12/15] Island, UI: remove starting node states Since bootloader is gone, nothing sets the state of the node to "starting" --- .../cc/ui/src/components/map/preview-pane/PreviewPane.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/monkey/monkey_island/cc/ui/src/components/map/preview-pane/PreviewPane.js b/monkey/monkey_island/cc/ui/src/components/map/preview-pane/PreviewPane.js index 7e13b30d3..1007e2061 100644 --- a/monkey/monkey_island/cc/ui/src/components/map/preview-pane/PreviewPane.js +++ b/monkey/monkey_island/cc/ui/src/components/map/preview-pane/PreviewPane.js @@ -228,7 +228,7 @@ class PreviewPaneComponent extends AuthComponent { info = this.scanInfo(this.props.item); break; case 'node': - if (this.props.item.group.includes('monkey') && this.props.item.group.includes('starting')) { + if (this.props.item.group.includes('monkey')) { info = this.assetInfo(this.props.item); } else if (this.props.item.group.includes('monkey', 'manual')) { info = this.infectedAssetInfo(this.props.item) From e224470161c9980c2ce0181e0966dbbe277da949 Mon Sep 17 00:00:00 2001 From: Ilija Lazoroski Date: Tue, 1 Feb 2022 15:40:48 +0100 Subject: [PATCH 13/15] Changelog: Add entry for removal of agent's bootloader --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 054e7b749..7792d1b12 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -41,6 +41,7 @@ Changelog](https://keepachangelog.com/en/1.0.0/). - Max victims to find/exploit, TCP scan interval and TCP scan get banner internal options. #1597 - MySQL fingerprinter. #1648 - MS08-067 (Conficker) exploiter. #1677 +- Agent bootloader. #1676 ### Fixed - A bug in network map page that caused delay of telemetry log loading. #1545 From 28d03339bf4326c1bcd40f4706593d9f1ea00ea7 Mon Sep 17 00:00:00 2001 From: Ilija Lazoroski Date: Tue, 1 Feb 2022 17:18:16 +0100 Subject: [PATCH 14/15] Island: Small formatting change in config model --- monkey/monkey_island/cc/models/config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/monkey/monkey_island/cc/models/config.py b/monkey/monkey_island/cc/models/config.py index f2b82a8b4..437f73b44 100644 --- a/monkey/monkey_island/cc/models/config.py +++ b/monkey/monkey_island/cc/models/config.py @@ -1,4 +1,4 @@ -from mongoengine import EmbeddedDocument, BooleanField +from mongoengine import BooleanField, EmbeddedDocument class Config(EmbeddedDocument): From 3f639d40f3c48d1ebb625139029f5024eed19afb Mon Sep 17 00:00:00 2001 From: Ilija Lazoroski Date: Wed, 2 Feb 2022 16:53:34 +0100 Subject: [PATCH 15/15] Agent: Add pkg_resources.py2_warn in the spec file. --- monkey/infection_monkey/Pipfile | 1 + monkey/infection_monkey/Pipfile.lock | 40 +++++++++++++++++----------- monkey/infection_monkey/monkey.spec | 1 + 3 files changed, 26 insertions(+), 16 deletions(-) diff --git a/monkey/infection_monkey/Pipfile b/monkey/infection_monkey/Pipfile index b92fe8f11..90cc234ff 100644 --- a/monkey/infection_monkey/Pipfile +++ b/monkey/infection_monkey/Pipfile @@ -6,6 +6,7 @@ name = "pypi" [packages] cryptography = "==2.5" # We can't build 32bit ubuntu12 binary with newer versions of cryptography pyinstaller = "==4.2" +setuptools = "<=60.6.0" # https://github.com/pypa/setuptools/issues/3072 and https://github.com/pyinstaller/pyinstaller/issues/6564 impacket = ">=0.9" ipaddress = ">=1.0.23" netifaces = ">=0.10.9" diff --git a/monkey/infection_monkey/Pipfile.lock b/monkey/infection_monkey/Pipfile.lock index 9a5d6dbc6..a40dfa534 100644 --- a/monkey/infection_monkey/Pipfile.lock +++ b/monkey/infection_monkey/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "3790c3815ab19935a2879019cf4fe90dcddc1d6e073651249374fb6bb8c14e9e" + "sha256": "250fc3013e7083083999fbf289f8898d63ceffc95a02e87920d254950832ea68" }, "pipfile-spec": 6, "requires": { @@ -86,19 +86,19 @@ }, "boto3": { "hashes": [ - "sha256:a2ffce001160d7e7c72a90c3084700d50eb64ea4a3aae8afe21566971d1fd611", - "sha256:d7effba509d7298ef49316ba2da7a2ea115f2a7ff691f875f6354666663cf386" + "sha256:1903e4462b08f7696a8d0977361fe9e35e7a50d9e70d7abd72a3a17012741938", + "sha256:34e5ae33ef65b1c4e2e197009e88df5dc217386699939ae897d7fcdb5a6ff295" ], "markers": "python_version >= '3.6'", - "version": "==1.20.46" + "version": "==1.20.47" }, "botocore": { "hashes": [ - "sha256:354bce55e5adc8e2fe106acfd455ce448f9b920d7b697d06faa8cf200fd6566b", - "sha256:38dd4564839f531725b667db360ba7df2125ceb3752b0ba12759c3e918015b95" + "sha256:82da38e309bd6fd6303394e6e9d1ea50626746f2911e3fec996f9046c5d85085", + "sha256:a89b1be0a7f235533d8279d90b0b15dc2130d0552a9f7654ba302b564ab5688a" ], "markers": "python_version >= '3.6'", - "version": "==1.23.46" + "version": "==1.23.47" }, "certifi": { "hashes": [ @@ -254,7 +254,7 @@ "sha256:081649da27ced5e75709a1ee542136eaba9842a0fe4c03da4fb0a3d3ed1f3c44", "sha256:e79351e032d0b606b98d38a4b0e6e2275b31a5b85c873e587cc11b73aca026d6" ], - "markers": "python_version >= '3.6' and python_version < '4'", + "markers": "python_version >= '3.6' and python_version < '4.0'", "version": "==2.2.0" }, "flask": { @@ -525,7 +525,7 @@ "sha256:43e6dd9942dffd72661a2c4ef383ad7da1e6a3e968a927ad7a6083ab410a688b", "sha256:7dc6ad46f05f545f900dd59e8dfb4e84a4827b97b3cfecb175ea0c7d247f6064" ], - "markers": "python_version >= '3.6'", + "markers": "python_version >= '3.5'", "version": "==8.12.0" }, "msldap": { @@ -896,11 +896,11 @@ }, "s3transfer": { "hashes": [ - "sha256:50ed823e1dc5868ad40c8dc92072f757aa0e653a192845c94a3b676f4a62da4c", - "sha256:9c1dc369814391a6bda20ebbf4b70a0f34630592c9aa520856bf384916af2803" + "sha256:25c140f5c66aa79e1ac60be50dcd45ddc59e83895f062a3aab263b870102911f", + "sha256:69d264d3e760e569b78aaa0f22c97e955891cd22e32b10c51f784eeda4d9d10a" ], "markers": "python_version >= '3.6'", - "version": "==0.5.0" + "version": "==0.5.1" }, "scoutsuite": { "git": "git://github.com/guardicode/ScoutSuite", @@ -913,6 +913,14 @@ ], "version": "==21.1.0" }, + "setuptools": { + "hashes": [ + "sha256:c99207037c38984eae838c2fd986f39a9ddf4fabfe0fddd957e622d1d1dcdd05", + "sha256:eb83b1012ae6bf436901c2a2cee35d45b7260f31fd4b65fd1e50a9f99c11d7f8" + ], + "index": "pypi", + "version": "==60.6.0" + }, "six": { "hashes": [ "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", @@ -929,11 +937,11 @@ }, "tempora": { "hashes": [ - "sha256:8d743059a4ea496d925f35480c6d206a7160cacebcd6a31e147fb495dcb732af", - "sha256:aa21dd1956e29559ecb2f2f2e14fcdb950085222fbbf86e6c946b5e1a8c36b26" + "sha256:cba0f197a64883bf3e73657efbc0324d5bf17179e7769b1385b4d75d26cd9127", + "sha256:fbca6a229af666ea4ea8b2f9f80ac9a074f7cf53a97987855b1d15b6e93fd63b" ], "markers": "python_version >= '3.7'", - "version": "==5.0.0" + "version": "==5.0.1" }, "tqdm": { "hashes": [ @@ -1028,7 +1036,7 @@ "sha256:9f50f446828eb9d45b267433fd3e9da8d801f614129124863f9c51ebceafb87d", "sha256:b47250dd24f92b7dd6a0a8fc5244da14608f3ca90a5efcd37a3b1642fac9a375" ], - "markers": "python_version < '3.10'", + "markers": "python_version >= '3.7'", "version": "==3.7.0" }, "zope.interface": { diff --git a/monkey/infection_monkey/monkey.spec b/monkey/infection_monkey/monkey.spec index 6ed615ec2..3f6461f22 100644 --- a/monkey/infection_monkey/monkey.spec +++ b/monkey/infection_monkey/monkey.spec @@ -74,6 +74,7 @@ def get_hidden_imports(): imports = ['_cffi_backend', '_mssql'] if is_windows(): imports.append('queue') + imports.append('pkg_resources.py2_warn') return imports