From 8ae11e9faaf250e7e267016fd7c4a9bb997c0e18 Mon Sep 17 00:00:00 2001 From: Mike Salvatore Date: Thu, 29 Sep 2022 13:08:59 -0400 Subject: [PATCH] Common,Agent: Move PortStatus to common.types --- monkey/common/__init__.py | 1 - monkey/common/types.py | 13 +++++++++++++ monkey/infection_monkey/master/ip_scanner.py | 3 +-- monkey/infection_monkey/master/propagator.py | 3 +-- .../network_scanning/elasticsearch_fingerprinter.py | 3 +-- .../network_scanning/http_fingerprinter.py | 3 +-- .../network_scanning/smb_fingerprinter.py | 4 ++-- .../network_scanning/tcp_scanner.py | 2 +- .../infection_monkey/master/mock_puppet.py | 4 ++-- .../infection_monkey/master/test_ip_scanner.py | 4 ++-- .../infection_monkey/master/test_propagator.py | 4 ++-- .../test_elasticsearch_fingerprinter.py | 2 +- .../network_scanning/test_http_fingerprinter.py | 2 +- .../network_scanning/test_mssql_fingerprinter.py | 2 +- .../network_scanning/test_ssh_fingerprinter.py | 3 ++- .../network_scanning/test_tcp_scanner.py | 2 +- 16 files changed, 32 insertions(+), 23 deletions(-) diff --git a/monkey/common/__init__.py b/monkey/common/__init__.py index 12e33e028..69190bce5 100644 --- a/monkey/common/__init__.py +++ b/monkey/common/__init__.py @@ -8,4 +8,3 @@ from . import types from . import base_models from .agent_registration_data import AgentRegistrationData from .agent_signals import AgentSignals -from .port_status import PortStatus diff --git a/monkey/common/types.py b/monkey/common/types.py index c1263a466..439f07c63 100644 --- a/monkey/common/types.py +++ b/monkey/common/types.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass +from enum import Enum from ipaddress import IPv4Address from typing import Optional from uuid import UUID @@ -23,6 +24,18 @@ class PingScanData: os: Optional[OperatingSystem] +class PortStatus(Enum): + """ + An Enum representing the status of the port. + + This Enum represents the status of a network pork. The value of each + member is distincive and unique number. + """ + + OPEN = 1 + CLOSED = 2 + + class SocketAddress(InfectionMonkeyBaseModel): ip: IPv4Address port: conint(ge=1, le=65535) # type: ignore[valid-type] diff --git a/monkey/infection_monkey/master/ip_scanner.py b/monkey/infection_monkey/master/ip_scanner.py index dd46eeb2e..4b2932e9e 100644 --- a/monkey/infection_monkey/master/ip_scanner.py +++ b/monkey/infection_monkey/master/ip_scanner.py @@ -5,12 +5,11 @@ from queue import Queue from threading import Event from typing import Callable, Dict, Sequence -from common import PortStatus from common.agent_configuration.agent_sub_configurations import ( NetworkScanConfiguration, PluginConfiguration, ) -from common.types import PingScanData +from common.types import PingScanData, PortStatus from infection_monkey.i_puppet import FingerprintData, IPuppet, PortScanData from infection_monkey.network import NetworkAddress from infection_monkey.utils.threading import interruptible_iter, run_worker_threads diff --git a/monkey/infection_monkey/master/propagator.py b/monkey/infection_monkey/master/propagator.py index 2c8235cfe..21a4708fb 100644 --- a/monkey/infection_monkey/master/propagator.py +++ b/monkey/infection_monkey/master/propagator.py @@ -4,14 +4,13 @@ from queue import Queue from threading import Event from typing import List, Mapping, Sequence -from common import PortStatus from common.agent_configuration import ( ExploitationConfiguration, NetworkScanConfiguration, PropagationConfiguration, ScanTargetConfiguration, ) -from common.types import PingScanData +from common.types import PingScanData, PortStatus from infection_monkey.i_puppet import ExploiterResultData, FingerprintData, PortScanData from infection_monkey.model import VictimHost, VictimHostFactory from infection_monkey.network import NetworkAddress diff --git a/monkey/infection_monkey/network_scanning/elasticsearch_fingerprinter.py b/monkey/infection_monkey/network_scanning/elasticsearch_fingerprinter.py index df679642a..d0dd85db2 100644 --- a/monkey/infection_monkey/network_scanning/elasticsearch_fingerprinter.py +++ b/monkey/infection_monkey/network_scanning/elasticsearch_fingerprinter.py @@ -4,9 +4,8 @@ from typing import Any, Dict import requests -from common import PortStatus from common.common_consts.network_consts import ES_SERVICE -from common.types import PingScanData +from common.types import PingScanData, PortStatus from infection_monkey.i_puppet import FingerprintData, IFingerprinter, PortScanData DISPLAY_NAME = "ElasticSearch" diff --git a/monkey/infection_monkey/network_scanning/http_fingerprinter.py b/monkey/infection_monkey/network_scanning/http_fingerprinter.py index 85393794f..94b6aa981 100644 --- a/monkey/infection_monkey/network_scanning/http_fingerprinter.py +++ b/monkey/infection_monkey/network_scanning/http_fingerprinter.py @@ -5,8 +5,7 @@ from typing import Any, Dict, Iterable, Optional, Set, Tuple from requests import head from requests.exceptions import ConnectionError, Timeout -from common import PortStatus -from common.types import PingScanData +from common.types import PingScanData, PortStatus from infection_monkey.i_puppet import FingerprintData, IFingerprinter, PortScanData logger = logging.getLogger(__name__) diff --git a/monkey/infection_monkey/network_scanning/smb_fingerprinter.py b/monkey/infection_monkey/network_scanning/smb_fingerprinter.py index 45954caec..55e512812 100644 --- a/monkey/infection_monkey/network_scanning/smb_fingerprinter.py +++ b/monkey/infection_monkey/network_scanning/smb_fingerprinter.py @@ -5,8 +5,8 @@ from typing import Dict from odict import odict -from common import OperatingSystem, PortStatus -from common.types import PingScanData +from common import OperatingSystem +from common.types import PingScanData, PortStatus from infection_monkey.i_puppet import FingerprintData, IFingerprinter, PortScanData DISPLAY_NAME = "SMB" diff --git a/monkey/infection_monkey/network_scanning/tcp_scanner.py b/monkey/infection_monkey/network_scanning/tcp_scanner.py index 89c27857b..70ef3cc0f 100644 --- a/monkey/infection_monkey/network_scanning/tcp_scanner.py +++ b/monkey/infection_monkey/network_scanning/tcp_scanner.py @@ -5,7 +5,7 @@ import time from pprint import pformat from typing import Collection, Dict, Iterable, Mapping, Tuple -from common import PortStatus +from common.types import PortStatus from common.utils import Timer from infection_monkey.i_puppet import PortScanData from infection_monkey.network.tools import BANNER_READ, DEFAULT_TIMEOUT, tcp_port_to_service diff --git a/monkey/tests/unit_tests/infection_monkey/master/mock_puppet.py b/monkey/tests/unit_tests/infection_monkey/master/mock_puppet.py index 71d12eaad..6b5930e1d 100644 --- a/monkey/tests/unit_tests/infection_monkey/master/mock_puppet.py +++ b/monkey/tests/unit_tests/infection_monkey/master/mock_puppet.py @@ -2,9 +2,9 @@ import logging import threading from typing import Dict, Iterable, Sequence -from common import OperatingSystem, PortStatus +from common import OperatingSystem from common.credentials import Credentials, LMHash, Password, SSHKeypair, Username -from common.types import PingScanData +from common.types import PingScanData, PortStatus from infection_monkey.i_puppet import ( ExploiterResultData, FingerprintData, diff --git a/monkey/tests/unit_tests/infection_monkey/master/test_ip_scanner.py b/monkey/tests/unit_tests/infection_monkey/master/test_ip_scanner.py index 648198928..8e6fa19c5 100644 --- a/monkey/tests/unit_tests/infection_monkey/master/test_ip_scanner.py +++ b/monkey/tests/unit_tests/infection_monkey/master/test_ip_scanner.py @@ -5,14 +5,14 @@ from unittest.mock import MagicMock import pytest from tests.unit_tests.infection_monkey.master.mock_puppet import MockPuppet -from common import OperatingSystem, PortStatus +from common import OperatingSystem from common.agent_configuration.agent_sub_configurations import ( ICMPScanConfiguration, NetworkScanConfiguration, PluginConfiguration, TCPScanConfiguration, ) -from common.types import PingScanData +from common.types import PingScanData, PortStatus from infection_monkey.i_puppet import FingerprintData, PortScanData from infection_monkey.master import IPScanner from infection_monkey.network import NetworkAddress diff --git a/monkey/tests/unit_tests/infection_monkey/master/test_propagator.py b/monkey/tests/unit_tests/infection_monkey/master/test_propagator.py index 5b6052973..dda161630 100644 --- a/monkey/tests/unit_tests/infection_monkey/master/test_propagator.py +++ b/monkey/tests/unit_tests/infection_monkey/master/test_propagator.py @@ -4,13 +4,13 @@ from unittest.mock import MagicMock import pytest -from common import OperatingSystem, PortStatus +from common import OperatingSystem from common.agent_configuration.agent_sub_configurations import ( NetworkScanConfiguration, PropagationConfiguration, ScanTargetConfiguration, ) -from common.types import PingScanData +from common.types import PingScanData, PortStatus from infection_monkey.i_puppet import ExploiterResultData, FingerprintData, PortScanData from infection_monkey.master import IPScanResults, Propagator from infection_monkey.model import VictimHost, VictimHostFactory diff --git a/monkey/tests/unit_tests/infection_monkey/network_scanning/test_elasticsearch_fingerprinter.py b/monkey/tests/unit_tests/infection_monkey/network_scanning/test_elasticsearch_fingerprinter.py index be10ed1ee..21ce36cfa 100644 --- a/monkey/tests/unit_tests/infection_monkey/network_scanning/test_elasticsearch_fingerprinter.py +++ b/monkey/tests/unit_tests/infection_monkey/network_scanning/test_elasticsearch_fingerprinter.py @@ -2,8 +2,8 @@ from unittest.mock import MagicMock import pytest -from common import PortStatus from common.common_consts.network_consts import ES_SERVICE +from common.types import PortStatus from infection_monkey.i_puppet import PortScanData from infection_monkey.network_scanning.elasticsearch_fingerprinter import ( ES_PORT, diff --git a/monkey/tests/unit_tests/infection_monkey/network_scanning/test_http_fingerprinter.py b/monkey/tests/unit_tests/infection_monkey/network_scanning/test_http_fingerprinter.py index d89f1d429..b9abe26ef 100644 --- a/monkey/tests/unit_tests/infection_monkey/network_scanning/test_http_fingerprinter.py +++ b/monkey/tests/unit_tests/infection_monkey/network_scanning/test_http_fingerprinter.py @@ -2,7 +2,7 @@ from unittest.mock import MagicMock import pytest -from common import PortStatus +from common.types import PortStatus from infection_monkey.i_puppet import PortScanData from infection_monkey.network_scanning.http_fingerprinter import HTTPFingerprinter diff --git a/monkey/tests/unit_tests/infection_monkey/network_scanning/test_mssql_fingerprinter.py b/monkey/tests/unit_tests/infection_monkey/network_scanning/test_mssql_fingerprinter.py index a742a3775..2271e5776 100644 --- a/monkey/tests/unit_tests/infection_monkey/network_scanning/test_mssql_fingerprinter.py +++ b/monkey/tests/unit_tests/infection_monkey/network_scanning/test_mssql_fingerprinter.py @@ -3,7 +3,7 @@ from unittest.mock import MagicMock import pytest -from common import PortStatus +from common.types import PortStatus from infection_monkey.i_puppet import PortScanData from infection_monkey.network_scanning.mssql_fingerprinter import ( MSSQL_SERVICE, diff --git a/monkey/tests/unit_tests/infection_monkey/network_scanning/test_ssh_fingerprinter.py b/monkey/tests/unit_tests/infection_monkey/network_scanning/test_ssh_fingerprinter.py index 4b021d1fa..fe6dc70ca 100644 --- a/monkey/tests/unit_tests/infection_monkey/network_scanning/test_ssh_fingerprinter.py +++ b/monkey/tests/unit_tests/infection_monkey/network_scanning/test_ssh_fingerprinter.py @@ -1,6 +1,7 @@ import pytest -from common import OperatingSystem, PortStatus +from common import OperatingSystem +from common.types import PortStatus from infection_monkey.i_puppet import FingerprintData, PortScanData from infection_monkey.network_scanning.ssh_fingerprinter import SSHFingerprinter diff --git a/monkey/tests/unit_tests/infection_monkey/network_scanning/test_tcp_scanner.py b/monkey/tests/unit_tests/infection_monkey/network_scanning/test_tcp_scanner.py index a56782090..bd5a66cb6 100644 --- a/monkey/tests/unit_tests/infection_monkey/network_scanning/test_tcp_scanner.py +++ b/monkey/tests/unit_tests/infection_monkey/network_scanning/test_tcp_scanner.py @@ -2,7 +2,7 @@ from unittest.mock import MagicMock import pytest -from common import PortStatus +from common.types import PortStatus from infection_monkey.network_scanning import scan_tcp_ports from infection_monkey.network_scanning.tcp_scanner import EMPTY_PORT_SCAN