【问题标题】:Snort rules for byte code字节码的 Snort 规则
【发布时间】:2014-04-09 08:47:54
【问题描述】:

我今天才开始学习如何使用 Snort。

但是,我需要一些关于我的规则设置的帮助。

我正在尝试在网络上查找以下发送到机器的代码。这台机器上安装了 snort(就像我现在安装的那样)。

我要在网络上分析的代码是以字节为单位的。

\xAA\x00\x00\x00\x00\x00\x00\x0F\x00\x00\x02\x74\x00\x00' (total of 14 bytes)

现在,我想分析代码的前 7 个字节。对我来说,如果第一个字节是(AA),第七个字节是(0F)。然后我想用鼻子发出警报。

到目前为止,我的规则是:

alert tcp any any -> any any \
(content:"|aa 00 00 00 00 00 00 0f|"; msg:"break in attempt"; sid:10; rev:1; \
classtype:shellcode-detect; rawbytes;)
byte_test:1, =, aa, 0, relative;
byte_test:7 =, 0f, 7, relative;

我猜我显然在某个地方犯了错误。也许熟悉snort的人可以帮助我?

谢谢。

【问题讨论】:

    标签: snort intrusion-detection


    【解决方案1】:

    恭喜你决定学习 snort。

    假设字节将在 TCP 数据包的有效负载中找到,您的规则标头应该没问题:

    alert tcp any any -> any any
    

    然后我们可以使用管道 (||) 指定内容匹配,让 snort 知道这些字符应该被解释为十六进制字节而不是 ascii:

    content:"|AA 00 00 00 00 00 00 0F|"; depth:8; 
    

    由于我们只希望规则匹配如果这些字节在数据包或缓冲区的前 8 个字节中找到,我们可以添加“深度”。 “深度”关键字修饰符告诉 snort 检查在数据包或缓冲区中的哪个位置找到了内容匹配项。要使上述内容匹配返回真,所有八个字节必须在数据包或缓冲区的前八个字节中找到。

    “rawbytes”在这里不是必需的,只能用于一个特定目的;匹配 telnet 控制字符。也不需要“byte_test”,因为我们已经使用内容匹配验证了字节 1 和 8 分别是“AA”和“0F”。

    所以,最终规则变成:

    alert tcp any any -> any any ( \
    msg:"SHELLCODE Break in attempt"; \
    content:"|AA 00 00 00 00 00 00 0F|"; depth:8; \
    classtype:shellcode-detect; sid:10;)
    

    如果您决定这应该只在文件内部匹配,您可以像这样使用“粘性”缓冲区“file_data”:

    alert tcp any any -> any any ( \
    msg:"SHELLCODE Break in attempt"; file_data; \
    content:"|AA 00 00 00 00 00 00 0F|"; depth:8; \
    classtype:shellcode-detect; sid:10;)
    

    如果在备用数据(文件数据)缓冲区中找到 shellcode,这将发出警报。

    如果您希望您的规则只查看此 shellcode 的某些文件类型,您可以使用“flowbits”,如下所示:

    alert tcp any any -> any any ( \
    msg:"SHELLCODE Break in attempt"; \
    flowbits:isset,file.pdf; file_data; \
    content:"|AA 00 00 00 00 00 00 0F|"; depth:8; \
    classtype:shellcode-detect; sid:10;)
    

    如果在设置 file.pdf 流位时找到这些字节,这将发出警报。您将需要启用设置 pdf flowbit 的规则。设置文件流位的规则和其他很好的例子可以在社区规则集中找到,这里免费提供https://www.snort.org/snort-rules。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-04
      • 2015-03-31
      相关资源
      最近更新 更多