如何使用python pyyaml包编写yaml文件?

How to write yml file using python pyml package?

我想使用 python 字典创建 yml 文件 如何制作我可以获得以下格式的字典格式 yml 文件

responses:
  utter_greet:
  - text: Hey! How are you?
    buttons:
    - title: "good"
      payload: "/greet"
    - title: "bad"
      payload: "/health"

您可以使用此包转换为 dict https://github.com/Infinidat/munch

pip3 install munch

转换为字典

import yaml
from munch import Munch
mydict = yaml.safe_load("""
responses:
  utter_greet:
  - text: Hey! How are you?
    buttons:
    - title: "good"
      payload: "/greet"
    - title: "bad"
      payload: "/health"
""")
print(mydict)

将 dict 转换为 yaml

with open('output.yml', 'w') as yaml_file:
    yaml.dump(mydict, yaml_file, default_flow_style=False)

如何使用python获取这个yml模板:

它必须为文件生成 UUID,并且生成的文件应该包含 yml template:

import uuid
print(uuid.uuid1())
u = str(uuid.uuid1())
u
open(u+".yml", "a+")

YML 模板格式:

- id: 7049e3ec-b822-4fdf-a4ac-18190f9b66d1
  name: Powerkatz (Staged)
  description: Use Invoke-Mimikatz
  tactic: credential-access
  technique:
    attack_id: T1003.001
    name: "OS Credential Dumping: LSASS Memory"
  privilege: Elevated
  platforms:
    windows:
      psh:
        command: |
          Import-Module .\invoke-mimi.ps1;
          Invoke-Mimikatz -DumpCreds
        parsers:
          plugins.stockpile.app.parsers.katz:
          - source: domain.user.name
            edge: has_password
            target: domain.user.password
          - source: domain.user.name
            edge: has_hash
            target: domain.user.ntlm
          - source: domain.user.name
            edge: has_hash
            target: domain.user.sha1
        payloads:
        - invoke-mimi.ps1