如何按 IRC 频道拆分 pcap

如何按 IRC 频道拆分 pcap

我想知道是否有办法分割每个频道仅包含 IRC 的 pcap。我正在尝试使用现有 IDS(suricata、snort)比较频道中僵尸网络检测的准确性。检查检测到哪个 IRC 频道的唯一方法似乎是按 IRC 频道分割 pcap,然后尝试分别分析每个 pcap。有没有办法在tcpdump任何其他工具中执行此操作?

多谢!

答案1

这应该非常简单,因为每个信息RFC 2812, 3.3RFC 1459, 2.3) 和渠道运营RFC 2812, 3.2RFC 1459, 4.2) 中包含通道名称,两个方向均如此:

当然你必须做一个正则表达式如果它位于消息、主题等内部,则不计算频道名称。我认为可以使用字符:作为分隔符,如下所示:

/^(:|)[^:]*(PRIVMSG|JOIN|PART|MODE|TOPIC) #channel( |$)/gm
  • ^(:|)允许将可选字符:作为来自服务器的消息的第一个字符
  • [^:]*禁用下一个之后的所有查找:
  • (PRIVMSG|JOIN|PART|MODE|TOPIC)您正在寻找的命令列表 – 按要求完成!
  • #channel频道名称
  • ( |$)尾部空间或行结束(我们不想匹配#channelfoo
  • 旗帜/gm全球的多行

这应该有效在您的用例中:它可能在边界情况下失败,并且实际上并不是一个完整的 IRC 协议解析器。

相关内容