diff options
Diffstat (limited to 'data/arsenal_parser.py')
-rwxr-xr-x | data/arsenal_parser.py | 43 |
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)) |