【问题标题】:Why is in this snort rule EOF missing at '.'为什么在这个 snort 规则中 EOF 在 '.' 处丢失
【发布时间】:2019-04-01 08:58:59
【问题描述】:

我想在 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 之后的反斜杠应该被转义。你要导入什么IDS和什么版本?我会在早上给你发消息给规则作者(一位同事)。

标签: http pcre snort


【解决方案1】:

您的问题出在 HTTP 标头中:

 /^HTTP/1.1 200...

PCRE 使用正斜杠分隔。你无意中在你的表情中留下了一个斜线。此外,你有一个点,你可能不是故意的。您将需要进行以下调整:

 /^HTTP\/1\.1 200...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-27
    • 1970-01-01
    相关资源
    最近更新 更多