我有一个我想在IDS中导入的snort规则。
alert tcp any any -> any any (msg:"FOX-IT - Trojan - Possible CobaltStrike C2 Server";
flow:to_client;
content:"HTTP/1.1 200 OK |0d0a|"; fast_pattern; depth:18;
content:"Date: ";
pcre:"/^HTTP/1.1 200 OK \r\nContent-Type: [^\r\n]{0,100}\r\nDate: [^\r\n]{0,100} GMT\r\n(Content-Length: \d+\r\n)\r\n/";
threshold:type limit, track by_dst, count 1, seconds 600;
classtype:trojan-activity; priority:2;
sid:21002217; rev:3;)
我收到错误:
验证失败:PCRE令牌无效或不受支持:[...]错误:不支持的PCRE语法:“。”时缺少EOF
当我编辑PCRE时
pcre:"/^HTTP/1.1 200 OK \r\nContent-Type: [^\r\n]{0,100}\r\nDate: [^\r\n]{0,100} GMT\r\n(Content-Length: \d+\r\n)\r\n/";
至
pcre:"/^HTTP 200 OK \r\nContent-Type: [^\r\n]{0,100}\r\nDate: [^\r\n]{0,100} GMT\r\n(Content-Length: \d+\r\n)\r\n/";
(所以删除/1.1
),它说语法是有效的。
我怎样才能解决这个问题?
您的问题出在HTTP标头中:
/^HTTP/1.1 200...
PCRE使用正斜杠分隔。你无意中在你的表情中留下了一个简单的斜线。另外,你有一个你可能不想要的点。您需要进行调整,例如:
/^HTTP\/1\.1 200...