From 65647d7481fc350b4019c0f68e4518301a2e4f58 Mon Sep 17 00:00:00 2001 From: maride Date: Thu, 29 Jan 2026 10:48:09 +0100 Subject: [PATCH] Fix cluster schematic in network graph --- main.typ | 50 ++++++++++++++++++++++++++--------------------- pages/mgmtsum.typ | 11 ++--------- 2 files changed, 30 insertions(+), 31 deletions(-) diff --git a/main.typ b/main.typ index b5e2a50..14912d2 100644 --- a/main.typ +++ b/main.typ @@ -66,32 +66,38 @@ start: placeholder("01.01.1970"), end: placeholder("31.12.1970"), setup: placeholder([Connection to #targetFull was made through a dedicated VPN connection. The inner IP address of the test device was 10.0.0.42.]), - nodes: " - subgraph stage1 { - label=\"Connection\"; - User -> Firewall [label=\"OpenVPN\"]; - } + nodes: ``` + digraph G { + rankdir=LR; + node [shape=rectangle]; + color="#3C6A6A"; - subgraph targetnet1 { - label=\"Target Network\"; - Firewall -> Target1; - Firewall -> Target2; - Firewall -> Target3; - Firewall -> Target4; - } + subgraph cluster_conn { + label="Connection" + User -> Firewall [label="OpenVPN"] + } - subgraph targetnet2 { - label=\"Target Network\"; - Target2 -> Target5; - Target2 -> Target6; - Target2 -> Target7; - } + subgraph cluster_targetnet1 { + label="DMZ"; + Firewall -> Target1 + Firewall -> Target2 + Firewall -> Target3 + Firewall -> Target4 + } - subgraph targetnet3 { - label=\"Target Network\"; - Target4 -> Target8; + subgraph cluster_targetnet2 { + label="Mgmt LAN" + Target2 -> Target5 + Target2 -> Target6 + Target2 -> Target7 + } + + subgraph cluster_targetnet3 { + label="IoT Devices" + Target4 -> Target8 + } } - ", + ```, scope: ( ( type: "Address", content: placeholder("10.23.42.1"), inScope: true ), ( type: "Address", content: placeholder("2001:db8::2342"), inScope: true ), diff --git a/pages/mgmtsum.typ b/pages/mgmtsum.typ index b2255ee..6b11f10 100644 --- a/pages/mgmtsum.typ +++ b/pages/mgmtsum.typ @@ -2,7 +2,7 @@ #import "../addons/cvss.typ" -#let render(target: str, targetInSentence: str, testFocus: str, testObject: str, testScenario: str, recommendation: str, start: str, end: str, setup: str, nodes: str, scope: array) = { +#let render(target: str, targetInSentence: str, testFocus: str, testObject: str, testScenario: str, recommendation: str, start: str, end: str, setup: str, nodes: raw, scope: array) = { [ = Management Summary @@ -87,14 +87,7 @@ [ From the perspective of the machine used for the penetration test, the network layout was seen as shown in the graph below. ] figure( - diagraph.render(" - digraph G { - rankdir=LR; - node [shape=rectangle]; - - " + nodes + " - } - "), + diagraph.raw-render(nodes), caption: [ Schematic graph showing the test objective network ]