Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
shivaccuknox committed Apr 25, 2024
1 parent 989bda1 commit 9fd9383
Show file tree
Hide file tree
Showing 6 changed files with 12,151 additions and 0 deletions.
139 changes: 139 additions & 0 deletions accuknox_support.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
techniques:
MNO Roaming Partners : no
Implant Internal Image : no
Bypass home routing : no
Bid down UE : no
Internal resource search : no
Network Function Service Discovery : no
Network Flow Manipulation : no
'Controller ' : no
vSwitch : no
Manipulate Virtual Network Function (VNF) Configuration : no
Escape to Host : yes
Memory Scraping : no
Application Layer Protocol : no
Local Accounts : no
Rootkit : no
Unauthorized software in NFVI : no
Service Exhaustion Flood : no
Registration of malicious network functions : no
Radio Jamming : no
'Redirection of traffic via user plane network function ' : no
Fraudulent AMF registration for UE in UDM : no
Unauthorized access to Network Exposure Function (NEF) via token fraud : no
5G-GUTI reuse : no
Radio Interface : no
Tunnel Endpoint ID (TEID) uniqueness failure : no
Remote Services : no
Supply Chain Compromise : no
Software Deployment Tools : no
Cloud Accounts : no
Malicious VNF Instantiation : no
Accessing Terminated VNF : no
Shared resource discovery : no
Malicious privileged container VNF Shared Resource Access : no
Malicious co-tenancy exploit of NFVI (Network Slice) : no
Network Slice infrastructure resource hijacking : no
Network Slice application resource hijacking : no
Network Sniffing : no
Traffic Duplication : no
Hardware Security Module Key Signing : no
Device Database Manipulation : no
Flooding of core network component : no
Abuse of Inter-operator Interfaces : no
Remote System Discovery : no
Network Service Discovery : no
Network Boundary Bridging : no
Vandalism of Network Infrastructure : no
Cabling and junction boxes : no
Radio Access Hardware : no
Edge servers : no
Theft of Assets : no
Core Network Function Signaling : no
'Roaming and Interconnection ' : no
Subscriber Profile Identifier Discovery : no
Intercept Home Network via SUCI : no
Intercept bid-down SUPI : no
Passive radio signals observation : no
Self Location Measurement : no
Radio interface : no
Consume data allocation to deny or degrade service : no
Trigger fraud alert to deny service : no
Alter Subscriber Profile : no
Spoof network slice identifier : no
'Discover network slice identifier ' : no
Falsify interconnect invoice : no
SIM cloning : no
'Non-SBI ' : no
Transmitted Data Manipulation : no
Locate UE : no
Shared Network Function in slice : no
'Service Based Interface ' : no
DOS a UE via gNB or NF signaling : no
Retrieve UE subscription data : no
Charging fraud via NF control : no
SIM Credential Theft : no
Network-side SMS collection : no
'Charging Data Record (CDR) collection ' : no
NAS Exploit : no
gNodeB Component Manipulation : no
RAN Intelligent Controller (RIC) : no
xApp : no
rApp : no
Obtain subscriber identifier via NF : no
Protocol Tunneling : no
False Base Station or Access Point : no
Weaken Integrity : no
Exploit Public-Facing Application : no
Endpoint Denial of Service : no
Obtain Capabilities : no
Programable UE devices : no
Configurability of Fake Base Station or Access Point : no
Shared slice common control network function resource exhaustion : no
Exfiltration Over Unencrypted Non-C2 Protocol : no
Exfiltration Over Alternative Protocol : no
Acquire Infrastructure : no
Network Interfaces : no
Compromise Service Supply Chain : no
Intercept unencrypted SUPI : no
Exploit Semi-public Facing Application : no
Over-the-Air Input : no
Baseband API : no
Exploits : no
Operator Network : no
Network Access : no
UE Access via GTP-U : no
Discover TEID : no
UE DoS to AMF : no
GTP-U Abuse : no
Diameter signaling : no
Radio control manipulation via rogue xApps : no
IAB Denial of Service : no
Develop Capabilities : no
Stage Capabilities : no
Configure Operator Core Network : no
Silent SMS : no
Silent or spoofed paging : no
Alter ML Model : no
AI/ML training data and prediction poisoning : no
Compromise Software Supply Chain : no
Compromise Hardware Supply Chain : no
Hardware Additions : no
Tool : no
' Radio Network Functions' : no
Transmit Spoofed Broadcast Message : no
'Covert Exfiltration of Data Via DNS Request ' : no
Trusted Relationship : no
Impair Defenses : no
Gather Victim Host Information : no
Valid Accounts : no
Pre-OS Boot : no
Weaken Encryption : no
Container Administration Command : no
Automated Exfiltration : no
Credentials from Password Stores : no
Network Denial of Service : no
Adversary-in-the-Middle : no
Data Manipulation : no
Exploitation for Client Execution : no

90 changes: 90 additions & 0 deletions cmd.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
package main

import (
"fmt"
"os"
)

type Tactic struct {
Id string
Name string
Techniques []Technique
}

type Technique struct {
Name string
Id string
Support string
}

type displayT struct {
Tactics []Tactic
}

func main() {

// parse the yaml
var t T
t = *t.parseFightYaml()
var a A
a = *a.parseAccuknoxYaml()

// copy the support from the accuknox support yaml

// populate the display var which is input to template renderer
var d displayT
for _, tactic := range t.Tactics {
var t_d Tactic
t_d.Id = tactic.Id
t_d.Name = tactic.Name
for _, technique := range t.Techniques {
for _, tqt := range technique.Tactics {
if t_d.Id == tqt {
t_d.Techniques = append(t_d.Techniques, Technique{technique.Name, technique.ID, a.Techniques[technique.Name]})
}
}
}
d.Tactics = append(d.Tactics, t_d)
}

// print the struct
for _, tactic := range d.Tactics {
for _, technique := range tactic.Techniques {
fmt.Printf("%s: %s: %s\n", tactic.Name, technique.Name, technique.Support)
}
}

// open output file
fo, err := os.Create("index.html")
if err != nil {
panic(err)
}

defer func() {
if err := fo.Close(); err != nil {
panic(err)
}
}()

// render the template
d.generateAllTacticsPage(fo)

for _, tactic := range d.Tactics {

// open output file
fname := fmt.Sprintf("tactic-%s.html", tactic.Id)
fo, err := os.Create(fname)
if err != nil {
panic(err)
}

defer func() {
if err := fo.Close(); err != nil {
panic(err)
}
}()

// render the template
tactic.generateTechniquesPerTacticPage(fo)
}
}
Loading

0 comments on commit 9fd9383

Please sign in to comment.