# alperenugurlu/network_assessment architecture

> Architecture diagram of the GitHub repository alperenugurlu/network_assessment, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/alperenugurlu/network_assessment
- Repository: https://github.com/alperenugurlu/network_assessment

## Overview

This is a command-line network traffic assessment script. A user supplies a capture file; the script opens it, discovers source IPs, then scans packets from each source for the documented attack patterns and suspicious keywords, printing matches to the console. Detection functions are implemented in one file and called directly by main(). The README documents the detection capabilities; the sampled source supports the packet-processing and output relationships shown here.

Main entry points: [`Network_Compromise_Assessment.py`](https://github.com/alperenugurlu/network_assessment/blob/alperen_ugurlu_hack/Network_Compromise_Assessment.py) (Assessment main)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workflow["Assessment workflow"]
  node_main["Assessment main"]
  node_input["Capture path input"]
  node_pyshark["PyShark capture"]
  node_ip_scan["IP enumeration"]
end

subgraph group_protocol["Protocol detections"]
  node_dns_tunnel["DNS tunneling"]
  node_ssh_tunnel["SSH tunneling"]
  node_smb_attack["SMB attack"]
  node_smtp_dns["SMTP/DNS attack"]
end

subgraph group_traffic["Traffic attacks"]
  node_tcp_hijack["TCP hijacking"]
  node_ipv6_fragment["IPv6 fragmentation"]
  node_tcp_rst["TCP RST attack"]
  node_syn_flood["SYN flood"]
  node_udp_flood["UDP flood"]
  node_slowloris["Slowloris attack"]
end

subgraph group_inspection["Content inspection"]
  node_keyword_scan["Keyword inspection"]
end

node_user(("User"))
node_capture_file["Capture file"]
node_console(("Console"))

node_user -->|"enters path"| node_input
node_input -->|"returns path"| node_main
node_main -->|"opens capture"| node_pyshark
node_capture_file -->|"packet data"| node_pyshark
node_main -->|"enumerates IPs"| node_ip_scan
node_pyshark -->|"reads packets"| node_ip_scan
node_main -->|"checks packets"| node_dns_tunnel
node_main -->|"checks packets"| node_ssh_tunnel
node_main -->|"checks packets"| node_smb_attack
node_main -->|"checks packets"| node_smtp_dns
node_main -->|"checks packets"| node_tcp_hijack
node_main -->|"checks packets"| node_ipv6_fragment
node_main -->|"checks packets"| node_tcp_rst
node_main -->|"checks packets"| node_syn_flood
node_main -->|"checks packets"| node_udp_flood
node_main -->|"checks packets"| node_slowloris
node_main -->|"checks packet text"| node_keyword_scan
node_dns_tunnel -->|"prints finding"| node_console
node_ssh_tunnel -->|"prints finding"| node_console
node_smb_attack -->|"prints finding"| node_console
node_smtp_dns -->|"prints finding"| node_console
node_tcp_hijack -->|"prints finding"| node_console
node_ipv6_fragment -->|"prints finding"| node_console
node_tcp_rst -->|"prints finding"| node_console
node_syn_flood -->|"prints finding"| node_console
node_udp_flood -->|"prints finding"| node_console
node_slowloris -->|"prints finding"| node_console
node_keyword_scan -->|"prints finding"| node_console

click node_main "https://github.com/alperenugurlu/network_assessment/blob/alperen_ugurlu_hack/Network_Compromise_Assessment.py"
click node_input "https://github.com/alperenugurlu/network_assessment/blob/alperen_ugurlu_hack/Network_Compromise_Assessment.py"
click node_pyshark "https://github.com/alperenugurlu/network_assessment/blob/alperen_ugurlu_hack/Network_Compromise_Assessment.py"
click node_ip_scan "https://github.com/alperenugurlu/network_assessment/blob/alperen_ugurlu_hack/Network_Compromise_Assessment.py"
click node_dns_tunnel "https://github.com/alperenugurlu/network_assessment/blob/alperen_ugurlu_hack/Network_Compromise_Assessment.py"
click node_ssh_tunnel "https://github.com/alperenugurlu/network_assessment/blob/alperen_ugurlu_hack/Network_Compromise_Assessment.py"
click node_smb_attack "https://github.com/alperenugurlu/network_assessment/blob/alperen_ugurlu_hack/Network_Compromise_Assessment.py"
click node_smtp_dns "https://github.com/alperenugurlu/network_assessment/blob/alperen_ugurlu_hack/Network_Compromise_Assessment.py"
click node_tcp_hijack "https://github.com/alperenugurlu/network_assessment/blob/alperen_ugurlu_hack/Network_Compromise_Assessment.py"
click node_ipv6_fragment "https://github.com/alperenugurlu/network_assessment/blob/alperen_ugurlu_hack/Network_Compromise_Assessment.py"
click node_tcp_rst "https://github.com/alperenugurlu/network_assessment/blob/alperen_ugurlu_hack/Network_Compromise_Assessment.py"
click node_syn_flood "https://github.com/alperenugurlu/network_assessment/blob/alperen_ugurlu_hack/Network_Compromise_Assessment.py"
click node_udp_flood "https://github.com/alperenugurlu/network_assessment/blob/alperen_ugurlu_hack/Network_Compromise_Assessment.py"
click node_slowloris "https://github.com/alperenugurlu/network_assessment/blob/alperen_ugurlu_hack/Network_Compromise_Assessment.py"
click node_keyword_scan "https://github.com/alperenugurlu/network_assessment/blob/alperen_ugurlu_hack/Network_Compromise_Assessment.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main,node_input,node_pyshark,node_ip_scan,node_user toneBlue
class node_dns_tunnel,node_ssh_tunnel,node_smb_attack,node_smtp_dns toneAmber
class node_tcp_hijack,node_ipv6_fragment,node_tcp_rst,node_syn_flood,node_udp_flood,node_slowloris toneMint
class node_keyword_scan toneRose
class node_capture_file,node_console toneIndigo
```

## Components

### Assessment workflow

- [Assessment main](https://github.com/alperenugurlu/network_assessment/blob/alperen_ugurlu_hack/Network_Compromise_Assessment.py): `Network_Compromise_Assessment.py`
- [Capture path input](https://github.com/alperenugurlu/network_assessment/blob/alperen_ugurlu_hack/Network_Compromise_Assessment.py): `Network_Compromise_Assessment.py`
- [PyShark capture](https://github.com/alperenugurlu/network_assessment/blob/alperen_ugurlu_hack/Network_Compromise_Assessment.py): `Network_Compromise_Assessment.py`
- [IP enumeration](https://github.com/alperenugurlu/network_assessment/blob/alperen_ugurlu_hack/Network_Compromise_Assessment.py): `Network_Compromise_Assessment.py`

### Protocol detections

- [DNS tunneling](https://github.com/alperenugurlu/network_assessment/blob/alperen_ugurlu_hack/Network_Compromise_Assessment.py): `Network_Compromise_Assessment.py`
- [SSH tunneling](https://github.com/alperenugurlu/network_assessment/blob/alperen_ugurlu_hack/Network_Compromise_Assessment.py): `Network_Compromise_Assessment.py`
- [SMB attack](https://github.com/alperenugurlu/network_assessment/blob/alperen_ugurlu_hack/Network_Compromise_Assessment.py): `Network_Compromise_Assessment.py`
- [SMTP/DNS attack](https://github.com/alperenugurlu/network_assessment/blob/alperen_ugurlu_hack/Network_Compromise_Assessment.py): `Network_Compromise_Assessment.py`

### Traffic attacks

- [TCP hijacking](https://github.com/alperenugurlu/network_assessment/blob/alperen_ugurlu_hack/Network_Compromise_Assessment.py): `Network_Compromise_Assessment.py`
- [IPv6 fragmentation](https://github.com/alperenugurlu/network_assessment/blob/alperen_ugurlu_hack/Network_Compromise_Assessment.py): `Network_Compromise_Assessment.py`
- [TCP RST attack](https://github.com/alperenugurlu/network_assessment/blob/alperen_ugurlu_hack/Network_Compromise_Assessment.py): `Network_Compromise_Assessment.py`
- [SYN flood](https://github.com/alperenugurlu/network_assessment/blob/alperen_ugurlu_hack/Network_Compromise_Assessment.py): `Network_Compromise_Assessment.py`
- [UDP flood](https://github.com/alperenugurlu/network_assessment/blob/alperen_ugurlu_hack/Network_Compromise_Assessment.py): `Network_Compromise_Assessment.py`
- [Slowloris attack](https://github.com/alperenugurlu/network_assessment/blob/alperen_ugurlu_hack/Network_Compromise_Assessment.py): `Network_Compromise_Assessment.py`

### Content inspection

- [Keyword inspection](https://github.com/alperenugurlu/network_assessment/blob/alperen_ugurlu_hack/Network_Compromise_Assessment.py): `Network_Compromise_Assessment.py`

### Other components

- **User**
- **Capture file**
- **Console**

## Connections

- User → Capture path input: enters path
- Capture path input → Assessment main: returns path
- Assessment main → PyShark capture: opens capture
- Capture file → PyShark capture: packet data
- Assessment main → IP enumeration: enumerates IPs
- PyShark capture → IP enumeration: reads packets
- Assessment main → DNS tunneling: checks packets
- Assessment main → SSH tunneling: checks packets
- Assessment main → SMB attack: checks packets
- Assessment main → SMTP/DNS attack: checks packets
- Assessment main → TCP hijacking: checks packets
- Assessment main → IPv6 fragmentation: checks packets
- Assessment main → TCP RST attack: checks packets
- Assessment main → SYN flood: checks packets
- Assessment main → UDP flood: checks packets
- Assessment main → Slowloris attack: checks packets
- Assessment main → Keyword inspection: checks packet text
- DNS tunneling → Console: prints finding
- SSH tunneling → Console: prints finding
- SMB attack → Console: prints finding
- SMTP/DNS attack → Console: prints finding
- TCP hijacking → Console: prints finding
- IPv6 fragmentation → Console: prints finding
- TCP RST attack → Console: prints finding
- SYN flood → Console: prints finding
- UDP flood → Console: prints finding
- Slowloris attack → Console: prints finding
- Keyword inspection → Console: prints finding
