当我分析Snort的正则表达式集我发现了一个非常奇怪的字符类语法,像[\x80-t]
或者[\x01-t\x0B\x0C\x0E-t\x80-t]
,我想不出(真不知道)什么-t手段.我甚至不知道它是标准PCRE还是某种Snort扩展.
这是一些包含这些字符类的正则表达式:
/\x3d\x00\x12\x00..........(.[\x80-t]|...[\x80-t])/smiR
/^To\x3A[^\r\n]+[\x01-t\x0B\x0C\x0E-t\x80-t]/smi
Run Code Online (Sandbox Code Playgroud)
PS:请注意,\x80-t
标准方式甚至不是有效范围,因为字符t是\ x74.
我一直在使用snort-IDS.我在/ var/log/snort有一些日志文件.这些文件的类型为snort.log.xxxx.我如何查看此文件???
使用pyparsing模块解析Snort日志时遇到问题.
问题在于分离Snort日志(它有多行条目,用空行分隔)和获取pyparsing来解析每个条目作为整个块,而不是逐行读取并期望语法适用于每一行(显然, 它不是.)
我已经尝试将每个块转换为临时字符串,剥离每个块内的换行符,但它拒绝正确处理.我可能完全走错了路,但我不这么认为(类似的形式适用于syslog类型的日志,但这些是单行条目,因此适合你的基本文件迭代器/行处理)
这是一个日志示例和我到目前为止的代码:
[**] [1:486:4] ICMP Destination Unreachable Communication with Destination Host is Administratively Prohibited [**]
[Classification: Misc activity] [Priority: 3]
08/03-07:30:02.233350 172.143.241.86 -> 63.44.2.33
ICMP TTL:61 TOS:0xC0 ID:49461 IpLen:20 DgmLen:88
Type:3 Code:10 DESTINATION UNREACHABLE: ADMINISTRATIVELY PROHIBITED HOST FILTERED
** ORIGINAL DATAGRAM DUMP:
63.44.2.33:41235 -> 172.143.241.86:4949
TCP TTL:61 TOS:0x0 ID:36212 IpLen:20 DgmLen:60 DF
Seq: 0xF74E606
(32 more bytes of original packet)
** END OF DUMP
[**] ...more like this [**]
Run Code Online (Sandbox Code Playgroud)
更新的代码:
def snort_parse(logfile):
header = Suppress("[**] [") + …
Run Code Online (Sandbox Code Playgroud) 我已经安装并配置了snort 2.9.7.2,这运行没有问题,但我的问题是:什么意思是警告"没有为策略0配置预处理器"?此消息显示我运行命令时:snort -v
我有7个相关的表,在其中一个表上,有一个时间戳列,我想删除超过30天的所有行.但是,这些都是非常大的删除.我说的是数以千万计的记录.如果我从主表中删除所有这些记录,我必须查看其他6个表并从这些表中删除相关记录.
我的问题是优化这个的最佳方法是什么?
我正在考虑使用PARTITION
但只有一个表有时间戳列.我担心如果我删除主表中的旧分区,相关记录仍将存在于其他6个表中.相关记录通过字段(sid,cid)相关联.
对于上下文我使用的是snort和barnyard,它们是IDS处理器.
我正在使用MySQL 5.1.73,MyISAM表
以下是清理日志的片段:
StartTime,EndTime,TimeElapsed,AffectedRows
Wed Jan 6 01:00:01 EST 2016,Wed Jan 6 01:45:11 EST 2016,45:10,2911807
Thu Jan 7 01:00:02 EST 2016,Thu Jan 7 01:25:29 EST 2016,25:27,2230255
Fri Jan 8 01:00:01 EST 2016,Fri Jan 8 01:24:18 EST 2016,24:17,1400470
Sat Jan 9 01:00:02 EST 2016,Sat Jan 9 05:47:10 EST 2016,287:8,23360088
Sun Jan 10 01:00:01 EST 2016,Sun Jan 10 10:06:16 EST 2016,546:15,44970072
Mon Jan 11 01:00:01 EST 2016,Mon Jan 11 09:40:39 EST 2016,520:38,43948091
Run Code Online (Sandbox Code Playgroud)
这是我原来的清理脚本:
/usr/bin/mysql --defaults-extra-file=/old/.my.cnf snort_db …
Run Code Online (Sandbox Code Playgroud) 我正在使用一个名为snort的开源项目,该项目是用Linux编写的.我正确地在netbeans中打开项目,现在我将对此源代码进行一些更改.程序的src文件夹包含几个文件夹,每个文件夹也有一些文件夹.我听说netbeans能够生成make文件.我正在对文件夹XFolder中的src文件进行一些更改,并希望在我的项目(YFolder)中的另一个文件夹中使用库函数.我包含.h文件并正确使用了该功能.
#include"../YFolder/lib.h"
Run Code Online (Sandbox Code Playgroud)
现在,当我可以编译程序时,它是好的,但是当我使用在make进程中创建的动态库".so(共享对象文件)"时; 并运行程序,我看到一个错误,这意味着我从其他未定义的文件夹中使用的函数,并看到此错误; (sfxhash_new是我调用的外部函数的名称).
libsf_sip_preproc.so:未定义的符号:sfxhash_new
我还编辑了Makefile.am并添加了该包的源代码(../YFolder/lib.c and lib.h
); 但没有效果.有人可以帮我吗?
编辑:
我在文件夹src/dynamic-preprocessor/sip我想在文件中使用一个函数:src/sfutil/sfxHash.c函数名是sfxhash_new(...... ......)我正确地包含了sfxHash.h.我在Makefile.am中做了一些更改,但主要的makefile就是这个.
我的Makefile.am文件:
## $Id
AUTOMAKE_OPTIONS=foreign no-dependencies
INCLUDES = -I../include -I${srcdir}/../libs -I$(srcdir)/includes
libdir = ${exec_prefix}/lib/snort_dynamicpreprocessor
lib_LTLIBRARIES = libsf_sip_preproc.la
libsf_sip_preproc_la_LDFLAGS = -shared -export-dynamic -module @XCCFLAGS@
if SO_WITH_STATIC_LIB
libsf_sip_preproc_la_LIBADD = ../libsf_dynamic_preproc.la
else
nodist_libsf_sip_preproc_la_SOURCES = \
../include/sf_dynamic_preproc_lib.c \
../include/sf_ip.c \
endif
libsf_sip_preproc_la_SOURCES = \
spp_sip.c \
spp_sip.h \
sip_config.c \
sip_config.h \
sip_parser.c \
sip_parser.h \
sip_dialog.c \
sip_dialog.h \
sip_roptions.c \
sip_roptions.h \
sip_utils.c \
sip_utils.h \ …
Run Code Online (Sandbox Code Playgroud) 尝试编写一个snort规则来阻止系统(使用其IP)访问特定网站,到目前为止已经尝试过了。
alert tcp any any <> 'ipaddress' any (content: "web url"; msg: "Access Denied"; react:block; sid:1000005;)
Run Code Online (Sandbox Code Playgroud)
关于为什么这行不通的任何想法?
在尝试研究BLE时,我想知道是否可以通过Wireshark和Snort等工具对其进行分析?我碰到一个名字叫“ ubertooth”的东西,但这是一个USB设备,需要购买它才能让我们在BLE框架上进行DPI处理,对吗?是否可以捕获和分析鲨鱼上的BLE帧?
我尝试将snort作为IPS运行.所以我通过apt-get和config daq_type作为afpacket和daq_mode作为内联在ubuntu服务器上安装snort .和eth1:eth2这样的2接口 然后我写了一个测试规则
reject tcp any any -> any any (sid: 1000005;)
Run Code Online (Sandbox Code Playgroud)
它工作,但当我改变它
drop tcp any any -> any any (sid: 1000005;)
Run Code Online (Sandbox Code Playgroud)
这是行不通的.当我将动作改为sdrop时,结果是一样的.我从源代码安装snort但结果是一样的.你能帮忙写出真正的规则吗?
我看到了这个同样的问题,并谈到这个规则:
alert tcp any any -> any any (flags:S; msg:"NMAP TCP SYN"; sid: 1231213;)
Run Code Online (Sandbox Code Playgroud)
但这是完全错误的,它会在几乎任何类似简单的 HTTP 或 HTTPS 请求时提醒您。
我将这样重申这个问题:
有没有办法通过查看单个 IP 发送的一系列数据包来检测扫描,这些数据包设置了 SYN 标志,并在 Snort 规则中发送到设备上的至少 10 个端口?