热门标签 | 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


推荐阅读
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • PDF内容编辑的两种小方法,你知道怎么操作吗?
    本文介绍了两种PDF内容编辑的方法:迅捷PDF编辑器和Adobe Acrobat DC。使用迅捷PDF编辑器,用户可以通过选择需要更改的文字内容并设置字体形式、大小和颜色来编辑PDF文件。而使用Adobe Acrobat DC,则可以通过在软件中点击编辑来编辑PDF文件。PDF文件的编辑可以帮助办公人员进行文件内容的修改和定制。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • Ubuntu安装常用软件详细步骤
    目录1.GoogleChrome浏览器2.搜狗拼音输入法3.Pycharm4.Clion5.其他软件1.GoogleChrome浏览器通过直接下载安装GoogleChro ... [详细]
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社区 版权所有