aboutsummaryrefslogtreecommitdiffstats
path: root/data/arsenal_parser.py
diff options
context:
space:
mode:
Diffstat (limited to 'data/arsenal_parser.py')
-rwxr-xr-xdata/arsenal_parser.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/data/arsenal_parser.py b/data/arsenal_parser.py
new file mode 100755
index 0000000..e26c774
--- /dev/null
+++ b/data/arsenal_parser.py
@@ -0,0 +1,43 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+
+import sys
+import yaml
+
+if len(sys.argv) < 2:
+ script = sys.argv[0]
+ print(f"Usage: {script} <arsenal_data_file>")
+ exit(1)
+
+commands = []
+cmd = ""
+tags = "pentest"
+lang = ""
+desc = ""
+with open(sys.argv[1], "r") as f:
+ in_code_block = False
+ for line in f.readlines():
+ if line.startswith("% "):
+ tags = line[2:].strip()
+ elif line.startswith("## "):
+ desc = line[3:].strip()
+ elif line.startswith("#plateform/"):
+ plateform = "".join(line[11:].strip().split(" ")[0])
+ if plateform == "linux":
+ lang = "sh"
+ elif plateform == "windows":
+ lang = "powershell"
+ elif line.startswith("```"):
+ in_code_block = not in_code_block
+ elif in_code_block:
+ if "arsenal" not in tags and "internal" not in tags:
+ cmd = line.strip().replace("\n","")
+ if len(cmd) > 0 and len(desc) > 0 and len(lang) > 0:
+ entry = {}
+ entry["cmd"] = cmd
+ entry["tags"] = tags
+ entry["lang"] = lang
+ entry["desc"] = desc
+ commands.append(entry)
+if len(commands) > 0:
+ print(yaml.safe_dump(commands,width=1000))