【发布时间】:2022-08-18 15:09:53
【问题描述】:
我有一个大文件,其中包含多个条目,如下所示:
{\"author\":[\"frack113\"],\"description\":\"Detects a Sysmon configuration change, which could be the result of a legitimate reconfiguration or someone trying manipulate the configuration\",\"ruleId\":\"8ac03a65-6c84-4116-acad-dc1558ff7a77\",\"falsePositives\":[\"Legitimate administrative action\"],\"from\":\"now-360s\",\"immutable\":false,\"outputIndex\":\".siem-signals-default\",\"meta\":{\"from\":\"1m\"},\"maxSignals\":100,\"riskScore\":35,\"riskScoreMapping\":[],\"severity\":\"medium\",\"severityMapping\":[],\"threat\":[{\"tactic\":{\"id\":\"TA0005\",\"reference\":\"https://attack.mitre.org/tactics/TA0005\",\"name\":\"Defense Evasion\"},\"framework\":\"MITRE ATT&CK®\",\"technique\":[]}],\"to\":\"now\",\"references\":[\"https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon\"],\"version\":1,\"exceptionsList\":[],\"index\":[\"winlogbeat-*\"],\"query\":\"(winlog.channel:\\\"Microsoft\\\\-Windows\\\\-Sysmon\\\\/Operational\\\" AND winlog.event_id:\\\"16\\\")\",\"language\":\"lucene\",\"filters\":[],\"type\":\"query\"},\"schedule\":{\"interval\":\"5m\"}}
我正在开发一个 python 程序来检测单词 \"query\" 之后的字符串,例如
\"query\":\"(winlog.channel:\\\"Microsoft\\\\-Windows\\\\-Sysmon\\\\/Operational\\\" AND winlog.event_id:\\\"16\\\")\"
我正在尝试检测(winlog.channel:\\\"Microsoft\\\\-Windows\\\\-Sysmon\\\\/Operational\\\" AND winlog.event_id:\\\"16\\\"),我要检测其中的多个,然后使用它与另一个文件中的“查询”进行比较,以查找是否有任何相似之处。
我尝试使用此正则表达式,但根本无法检测到“查询”。
(?<=^\\\"query\\\":\\W)(\\w.*)$
和
(?<=\'{\\\"query\\\"}\':\\s)\'?([^\'}},]+)
如果有人能提供一些指点,我将不胜感激,因为我被困了几个小时!
-
你确定不能只使用
json.load? -
“似乎不起作用”是什么意思?它究竟以哪种方式不起作用?
-
如果您共享文件,我们可以提供帮助。如前所述,如果它是 json 文件,甚至可能需要正则表达式。
-
您正在尝试匹配不存在的字符,例如
\'和{如果这是 json,您可以考虑使用解析器。对于当前字符串:(?<=\"query\":\")\\([^()]+\\)regex101.com/r/3va8gP/1 -
@chitown88 不确定这是否是在这里共享文件的方式,但这里是文件的链接,文件相当长:link