aboutsummaryrefslogtreecommitdiff
path: root/tests/models/network/nmap.py
blob: f034bf02454f95be807c298daab0a2695e7b0aa5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import subprocess

from generalresearch.models.network.definitions import IPProtocol
from generalresearch.models.network.nmap.execute import execute_nmap
import faker

from generalresearch.models.network.nmap.result import PortState
from generalresearch.models.network.tool_run import ToolName, ToolClass

fake = faker.Faker()


def resolve(host):
    return subprocess.check_output(["dig", host, "+short"]).decode().strip()


def test_execute_nmap_scanme(toolrun_manager):
    ip = resolve("scanme.nmap.org")

    run = execute_nmap(ip=ip, top_ports=20)
    assert run.tool_name == ToolName.NMAP
    assert run.tool_class == ToolClass.PORT_SCAN
    assert run.ip == ip
    result = run.parsed

    port22 = result._port_index[(IPProtocol.TCP, 22)]
    assert port22.state == PortState.OPEN

    toolrun_manager.create_nmap_run(run)