热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Snort使用方法简介

安装方法:如果你安装好了libpcap后,对snort安装将是很简单,关于libpcap的安装说明,你可以看看blackfire(http://go.163.com/~bobdai/的一些文章,关于WINDOWS下的winpcap你可以看我站上的SNIFFERFORNT上的安装说明。装好libpcap后,你可以使用通常
安装方法:
如果你安装好了libpcap后,对snort安装将是很简单,关于libpcap的安装说明,你可以看看blackfire(http://go.163.com/~bobdai/的一些文章,关于WINDOWS下的winpcap你可以看我站上的SNIFFERFORNT上的安装说明。装好libpcap后,你可以使用通常的命令:

1.)./configure
2.)make
3.)makeinstall
装好后你可以使用makeclean清除一些安装时候产生的文件。(有些系统如freebsd已经支持了libpcap,所以很轻松,不用再装了)。
而WINDOWS更简单,只要解包出来就可以了;

参数介绍:
命令行是snort-[options]
选项:

-A设置的模式是full,fast,还是none;full模式是记录标准的alert模式到alert文件中;Fast模式只写入时间戳,messages,IPs,ports到文件中,None模式关闭报警。
-a是显示ARP包;
-b是把LOG的信息包记录为TCPDUMP格式,所有信息包都被记录为两进制形式,名字如snort-0612@1385.log,这个选项对于FAST记录模式比较好,因为它不需要花费包的信息转化为文本的时间。 Snort在100Mbps网络中使用"-b"比较好。
-c使用配置文件,这个规则文件是告诉系统什么样的信息要LOG,或者要报警,或者通过。
-C在信息包信息使用ASCII码来显示,而不是hexdump,
-d解码应用层。
-D把snort以守护进程的方法来运行,默认情况下ALERT记录发送到/var/log/snort.alert文件中去。-e显示并记录2个信息包头的数据。
-F从文件中读BPF过滤器(filters),这里的filters是标准的BPF格式过滤器,你可以在TCPDump里看到,你可以查看TCPDump的man页怎样使用这个过滤器。
-h设置网络地址,如一个C类IP地址192.168.0.1或者其他的,使用这个选项,会使用箭头的方式数据进出的方向。-I使用网络接口参数 -lLOG信息包记录到目录中去。
-M发送WinPopup信息到包含文件中存在的工作站列表中去,这选项需要Samba的支持,wkstn文件很简单,每一行只要添加包含 在SMB中的主机名即可。(注意不需要\\两个斜杠)。
-n是指定在处理个数据包后退出。
-N关闭LOG记录,但ALERT功能仍旧正常。
-o改变所采用的记录文件,如正常情况下采用Alert->Pass->Logorder,而采用此选项是这样的顺序:Pass->Alert->Logorder,其中Pass是那些允许通过的规则而不记录和报警,ALERT是不允许通过的规则, 指LOG记录,因为有些人就喜欢奇奇怪怪,象CASPER,QUACK就喜欢反过来操作。
-p关闭杂乱模式嗅探方式,一般用来更安全的调试网络。
-r读取tcpdump方式产生的文件,这个方法用来处理如得到一个Shadow(ShadowIDS产生)文件,因为这些文件不能用一般的EDIT来编辑查看。
-sLOG报警的记录到syslog中去,在LINUX机器上,这些警告信息会出现在/var/log/secure,在其他平台上将出现在/var/log/message中去。
-S这个是设置变量值,这可以用来在命令行定义Snortrules文件中的变量,如你要在Snortrules文件中定义变量HOME_NET,你可以在命令行中给它预定义值。
-v使用为verbose模式,把信息包打印在console中,这个选项使用后会使速度很慢,这样结果在记录多的是时候会出现丢包现象。
-V显示SNORT版本并退出;
-?显示使用列表并退出;

下面是一些命令的组合介绍,当然更多的组合你可以自己去测试:

Snort存在比较多的命令选项和参数,先来介绍一些基本的一些命令,如果你想要把信息包的头显示在屏幕上,你可以使用:

./snort-v

这个命令会运行Snort和显示IP和TCP/UDP/ICMP头信息。我使用了ping192.168.0.1就显示了如下信息:
06/10-10:21:13.884925192.168.0.2-$#@62;192.168.0.1
ICMPTTL:64TOS:0x0ID:4068
ID:20507Seq:0ECHO

06/10-10:21:13.885081192.168.0.1-$#@62;192.168.0.2
ICMPTTL:128TOS:0x0ID:15941
ID:20507Seq:0ECHOREPLY

06/10-10:21:14.884874192.168.0.2-$#@62;192.168.0.1
ICMPTTL:64TOS:0x0ID:4069
ID:20507Seq:256ECHO

06/10-10:21:14.885027192.168.0.1-$#@62;192.168.0.2
ICMPTTL:128TOS:0x0ID:15942
ID:20507Seq:256ECHOREPLY

如果你想要解码应用层,就使用:

snort-vd
再次使用ping192.168.0.1就显示了如下信息:

06/10-10:26:39.894493192.168.0.2-$#@62;192.168.0.1
ICMPTTL:64TOS:0x0ID:4076
ID:20763Seq:0ECHO
58134239E0BB050008090A0B0C0D0E0FX.B9............
101112131415161718191A1B1C1D1E1F................
202122232425262728292A2B2C2D2E2F!"#$%&()*+,-./
303132333435363701234567

06/10-10:26:39.894637192.168.0.1-$#@62;192.168.0.2
ICMPTTL:128TOS:0x0ID:15966
ID:20763Seq:0ECHOREPLY
58134239E0BB050008090A0B0C0D0E0FX.B9............
101112131415161718191A1B1C1D1E1F................
202122232425262728292A2B2C2D2E2F!"#$%&()*+,-./
303132333435363701234567

如果要看到更详细的关于有关ethernet头的信息,就要使用:

snort-vde

使用ping192.168.0.1就显示了如下信息:
-*$#@62;Snort!$#@60;*-
Version1.6-WIN32
ByMartinRoesch(roesch@clark.net,www.clark.net/~roesch)
WIN32PortByMichaelDavis(Mike@eEye.com,www.datasurge.net/~mike)
06/10-10:32:01.3459620:60:94:F9:5E:17-$#@62;0:50:BA:BB:4A:54type:0x800len:0x62
192.168.0.2-$#@62;192.168.0.1ICMPTTL:64TOS:0x0ID:4079
ID:21787Seq:0ECHO
99144239474C0C0008090A0B0C0D0E0F..B9GL..........
101112131415161718191A1B1C1D1E1F................
202122232425262728292A2B2C2D2E2F!"#$%&()*+,-./
303132333435363701234567

06/10-10:32:01.3461640:50:BA:BB:4A:54-$#@62;0:60:94:F9:5E:17type:0x800len:0x62
192.168.0.1-$#@62;192.168.0.2ICMPTTL:128TOS:0x0ID:16090
ID:21787Seq:0ECHOREPLY
99144239474C0C0008090A0B0C0D0E0F..B9GL..........
101112131415161718191A1B1C1D1E1F................
202122232425262728292A2B2C2D2E2F!"#$%&()*+,-./
303132333435363701234567

当然上面的一些命令你只是在屏幕上看到,如果要记录在LOG文件上,你可以先建立一个log目录,在使用下面的命令:

./snort-dev-l./log-h192.168.0.1/24

这个命令就使Snort把ethernet头信息和应用层数据记录到./log目录总去了,并记录的是关于192.168.0.1CLASSC的信息,

如果你想利用一些规则文件(一些记录特定数据的规则文件,如SYNATTACK等记录)就使用:

./snort-dev-l./log-h192.168.1.0/24-csnort-lib

这里的Snort-lib是你的规则文件的文件名,这将采用snort-lib文件中设置的规则来决定是否记录某个信息包。而

./snort-d-h192.168.1.0/24-l./log-csnort-lib可以不记录一些ethernet头信息如,我用./nmap -sS192.168.0.1-p21就在/log/alert.ids中记录如下信息:

[**]IDS246-MISC-LargeICMPPacket[**]
06/12-13:48:31.992395192.168.0.1-$#@62;192.168.0.2
ICMPTTL:128TOS:0x0ID:36579
ID:46802Seq:0ECHOREPLY

我故意使用了rules出现的规则php.cgi/?,如192.168.0.1/cgi-bin/php.cgi/?,就显示:

[**]IDS232-WEB-CGI-PHPCGIaccessattempt[**]
06/12-13:53:35.106323192.168.0.2:1789-$#@62;192.168.0.1:80
TCPTTL:64TOS:0x0ID:8945DF
*****PA*Seq:0xA070C880Ack:0xF113872Win:0x7D78

./snort-d-h192.168.1.0/24-l./log-csnort-lib-s就会把日志记录在你规则文件中所定义的LOG文件中,而不是默认的alert.ids中。

./snort-d-h192.168.1.0/24-l./log-csnort-lib-o
  此命令是读规则文件的顺序,有些人很奇怪,需要先读允许的规则文件,再读alert规则文件,然后来LOG记录,那就按照上面的命令来操作。如果你的网络请求相当多,你可以使用:

./snort-b-Afast-csnort-lib
  这样,每一条规则内的警告消息就分开记录,对于多点同步探测和攻击的记录可以不容易丢包。当然这样记录的LOG文件是两进制的,类似与tcpdump的格式,你可以使用这样的方法来查看 这些LOG:

./snort-d-csnort-lib-l./log-h192.168.1.0/24-rsnort.log

最后讲将规则文件中的选项的意义,这些就不翻译了,因为偶比较愚钝,有些东西翻不正确:
#msg=$#@62;messagetooutputinthealert/logfiles
#flags=$#@62;TCPflags,use0fornoflagsatall
#ttl=$#@62;theTTLvalueyouwanttokeyon(niceforcatchingtraceroutes)
#cOntent=$#@62;thepacketapplicationlayer,lookforbufferoverflowshere
#itype=$#@62;theNUMBERoftheICMPtype
#icode=$#@62;theNUMBERoftheICMPcode
#minfrag=$#@62;minimumfragmentpayloadsize
#seq=$#@62;tcpsequencenumber
#ack=$#@62;tcpacknumber
#id=$#@62;IPheaderfragmentIDnumber
#logto=$#@62;filetologspecificalertsto
#dsize=$#@62;matchonthepacketpayloadsize
#offset=$#@62;startacontentsearch$#@60;offset$#@62;bytesintothepayload
#depth=$#@62;onlysearch$#@60;depth$#@62;bytesintothepayloadforapatternmatch
#session=$#@62;recordthesessiontrafficfromcleartextprotocolslike
#ftportelnet
#ipopts=$#@62;checkforaspecificIPoption

---------------------------------------------------------------------------

参考:www.snort.org


推荐阅读
  • 采用IKE方式建立IPsec安全隧道
    一、【组网和实验环境】按如上的接口ip先作配置,再作ipsec的相关配置,配置文本见文章最后本文实验采用的交换机是H3C模拟器,下载地址如 ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • 本文介绍了数据库体系的基础知识,涵盖关系型数据库(如MySQL)和非关系型数据库(如MongoDB)的基本操作及高级功能。通过三个阶段的学习路径——基础、优化和部署,帮助读者全面掌握数据库的使用和管理。 ... [详细]
  • 本文详细介绍了如何在预装Ubuntu系统的笔记本电脑上安装Windows 7。针对没有光驱的情况,提供了通过USB安装的具体方法,并解决了分区、驱动器无法识别等问题。 ... [详细]
  • 本题来自WC2014,题目编号为BZOJ3435、洛谷P3920和UOJ55。该问题描述了一棵不断生长的带权树及其节点上小精灵之间的友谊关系,要求实时计算每次新增节点后树上所有可能的朋友对数。 ... [详细]
  • 解决TensorFlow CPU版本安装中的依赖问题
    本文记录了在安装CPU版本的TensorFlow过程中遇到的依赖问题及解决方案,特别是numpy版本不匹配和动态链接库(DLL)错误。通过详细的步骤说明和专业建议,帮助读者顺利安装并使用TensorFlow。 ... [详细]
  • 本文详细介绍了在不同操作系统中查找和设置网卡的方法,涵盖了Windows系统的具体步骤,并提供了关于网卡位置、无线网络设置及常见问题的解答。 ... [详细]
  • Linux中的yum安装软件
    yum俗称大黄狗作用:解决安装软件包的依赖关系当安装依赖关系的软件包时,会将依赖的软件包一起安装。本地yum:需要yum源,光驱挂载。yum源:(刚开始查看yum源中的内容就是上图 ... [详细]
  • 本文探讨了如何解决PHP文件无法写入本地文件的问题,并解释了PHP文件中HTML代码无效的原因,提供了一系列实用的解决方案和最佳实践。 ... [详细]
  • 本文详细介绍了一种通过MySQL弱口令漏洞在Windows操作系统上获取SYSTEM权限的方法。该方法涉及使用自定义UDF DLL文件来执行任意命令,从而实现对远程服务器的完全控制。 ... [详细]
  • 通常情况下,修改my.cnf配置文件后需要重启MySQL服务才能使新参数生效。然而,通过特定命令可以在不重启服务的情况下实现配置的即时更新。本文将详细介绍如何在线调整MySQL配置,并验证其有效性。 ... [详细]
  • 如何使用Ping命令来测试网络连接?当网卡安装和有关参数配置完成后,可以使用ping命令来测试一下网络是否连接成功。以winXP为例1、打开XP下DOS窗口具体操作是点击“开始”菜 ... [详细]
  • 鼠标悬停出现提示信息怎么做
    概述–提示:指启示,提起注意或给予提醒和解释。在excel中会经常用到给某个格子增加提醒信息,比如金额提示输入数值或最大长度值等等。设置方式也有多种,简单的,仅为单元格插入批注就可 ... [详细]
  • 本文详细探讨了如何通过分析单个或多个线程在瓶颈情况下的表现,来了解处理器资源的消耗。无论是单进程还是多进程环境,监控关键指标如线程数量、占用时间及调度优先级等,有助于揭示潜在的性能问题。 ... [详细]
  • 在尝试使用C# Windows Forms客户端通过SignalR连接到ASP.NET服务器时,遇到了内部服务器错误(500)。本文将详细探讨问题的原因及解决方案。 ... [详细]
author-avatar
于磊com
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有