Skip to main content
Glama
network_scenarios.py4.78 kB
"""Network penetration testing scenarios.""" from .base import BaseScenarioBuilder class NetworkScenarioBuilder(BaseScenarioBuilder): """Builder for network penetration testing scenarios.""" def build_network_segmentation_lab(self) -> "NetworkScenarioBuilder": """Build multi-segment network for testing segmentation bypass.""" range_id = self.range_id # DMZ Network (VLAN 10) self.add_vm( vm_name=f"{range_id}-dmz-web-ubuntu22", hostname=f"{range_id}-dmz-web", template="ubuntu-22.04-x64-server-template", vlan=10, ip_last_octet=10, ram_gb=4, cpus=2, linux=True, ) # Internal Network (VLAN 20) self.add_vm( vm_name=f"{range_id}-internal-db-ubuntu22", hostname=f"{range_id}-internal-db", template="ubuntu-22.04-x64-server-template", vlan=20, ip_last_octet=10, ram_gb=8, cpus=2, linux=True, ) self.add_vm( vm_name=f"{range_id}-internal-file-ubuntu22", hostname=f"{range_id}-internal-file", template="ubuntu-22.04-x64-server-template", vlan=20, ip_last_octet=11, ram_gb=4, cpus=2, linux=True, ) # Management Network (VLAN 30) self.add_vm( vm_name=f"{range_id}-mgmt-admin-ubuntu22", hostname=f"{range_id}-mgmt-admin", template="ubuntu-22.04-x64-server-template", vlan=30, ip_last_octet=10, ram_gb=4, cpus=2, linux=True, ) # Attacker (VLAN 99) self.add_vm( vm_name=f"{range_id}-kali", hostname=f"{range_id}-kali", template="kali-x64-desktop-template", vlan=99, ip_last_octet=1, ram_gb=8, cpus=4, linux=True, ) # Network rules - Test segmentation bypass self.add_network_rule( "Allow kali to DMZ", vlan_src=99, vlan_dst=10, protocol="all", ports="all", action="ACCEPT", ) # DMZ can reach internal on specific ports self.add_network_rule( "Allow DMZ to internal DB", vlan_src=10, vlan_dst=20, protocol="tcp", ports=3306, # MySQL action="ACCEPT", ) # Internal can reach management self.add_network_rule( "Allow internal to management", vlan_src=20, vlan_dst=30, protocol="tcp", ports=22, # SSH action="ACCEPT", ) # SIEM Server for detection tracking self.add_siem_server(vlan=10, ip_last_octet=100) # Add SIEM agents to all VMs self.add_siem_agents_to_all_vms() return self def build_wireless_lab(self) -> "NetworkScenarioBuilder": """Build wireless security testing lab.""" range_id = self.range_id # Access Point (simulated) self.add_vm( vm_name=f"{range_id}-ap-ubuntu22", hostname=f"{range_id}-ap", template="ubuntu-22.04-x64-server-template", vlan=50, ip_last_octet=1, ram_gb=4, cpus=2, linux=True, ) # Client devices for i in range(1, 4): self.add_vm( vm_name=f"{range_id}-client-{i}-ubuntu22", hostname=f"{range_id}-client-{i}", template="ubuntu-22.04-x64-server-template", vlan=50, ip_last_octet=10 + i, ram_gb=4, cpus=2, linux=True, ) # Attacker self.add_vm( vm_name=f"{range_id}-kali", hostname=f"{range_id}-kali", template="kali-x64-desktop-template", vlan=99, ip_last_octet=1, ram_gb=8, cpus=4, linux=True, ) # Network rules self.add_network_rule( "Allow kali to wireless network", vlan_src=99, vlan_dst=50, protocol="all", ports="all", action="ACCEPT", ) # SIEM Server for detection tracking self.add_siem_server(vlan=50, ip_last_octet=100) # Add SIEM agents to all VMs self.add_siem_agents_to_all_vms() return self

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tjnull/Ludus-FastMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server