SnmpDetection Deprecated

Deprecated. No available replacement.

python · Cortex Attack Surface Management

Details

IDSnmpDetection
Languagepython
From Version6.5.0
Docker Imagedemisto/python3:3.10.10.48392

README

Checks to see if SNMP is enabled on the IP address provided.

Script Data


Name Description
Script Type python3
Cortex XSOAR Version 6.5.0

Used In


This script is used in the following playbooks and scripts.
Cortex ASM - SNMP Check

Inputs


Argument Name Description
ip_address IP address.
time_out Request timeout value, in seconds. Default value is 3 seconds.

Outputs


Path Description Type
SnmpDetection Displays if SNMP version is enabled and gets the versions running. Unknown
from SnmpDetection import snmp_detect
import json
import SnmpDetection


def load_test_data(json_path):
    """Load test data from json file."""
    with open(json_path) as f:
        return json.load(f)


def test_snmp_v1(mocker):
    """Unit tests for SNMP Version 1."""
    snmp_v1_response = load_test_data('./test_data/snmp_output.json')
    mocker.patch.object(SnmpDetection, 'snmp_v1', return_value=snmp_v1_response)
    result = snmp_detect("1.1.1.1", 3)
    assert isinstance(result, dict)
    assert result == {'enabled': 'True', 'versions': ['v1']}


def test_snmp_v2(mocker):
    """Unit tests for SNMP Version 2."""
    snmp_v2_response = load_test_data('./test_data/snmp_output.json')
    mocker.patch.object(SnmpDetection, 'snmp_v2', return_value=snmp_v2_response)
    result = snmp_detect("1.1.1.1", 3)
    assert isinstance(result, dict)
    assert result == {'enabled': 'True', 'versions': ['v2']}


def test_snmp_v3(mocker):
    """Unit tests for SNMP Version 3."""
    snmp_v3_response = load_test_data('./test_data/snmp_output.json')
    mocker.patch.object(SnmpDetection, 'snmp_v3', return_value=snmp_v3_response)
    result = snmp_detect("1.1.1.1", 3)
    assert isinstance(result, dict)
    assert result == {'enabled': 'True', 'versions': ['v3']}


def test_snmp_multiple_versions(mocker):
    """Unit tests for multiple SNMP Versions."""
    snmp__multiple_response = load_test_data('./test_data/snmp_output.json')
    mocker.patch.object(SnmpDetection, 'snmp_v1', return_value=snmp__multiple_response)
    mocker.patch.object(SnmpDetection, 'snmp_v2', return_value=snmp__multiple_response)
    mocker.patch.object(SnmpDetection, 'snmp_v3', return_value=snmp__multiple_response)
    result = snmp_detect("1.1.1.1", 3)
    assert isinstance(result, dict)
    assert result == {'enabled': 'True', 'versions': ['v1', 'v2', 'v3']}


def test_snmp_no_versions(mocker):
    """Unit tests for disabled SNMP."""
    result = snmp_detect("1.1.1.1", 3)
    assert result == {'enabled': 'False', 'versions': []}