Removed and refactored the database to import data directly from Arsenal.

This commit is contained in:
ben
2025-07-17 19:59:15 +02:00
parent 9624fd0e29
commit d7d31b719f
6 changed files with 77 additions and 3993 deletions

43
data/arsenal_parser.py Executable file
View File

@@ -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))