Snort搭建以及规则编写

news2024/11/16 13:56:25

目录

Snort IDS

Snort搭建

安装web服务,方便设置sonrt后期访问

Mysql安装

PHP安装 

安装 Snort

Snort配置

创建snort专用的用户和组

配置目录

配置规则

修改配置文件

规则编写


Snort IDS

Snort IDS(入侵检测系统)是一个强大的网络入侵检测系统。它具有实时数据流量分析和记录IP网络数据包的能力,能够进行协议分析,对网络数据包内容进行搜索/匹配。它能够检测各种不同的攻击方式,对攻击进行实时报警。此外,Snort是开源的入侵检测系统,并具有很好的扩展性和可移植性。

Snort搭建

环境:centos

安装web服务,方便设置sonrt后期访问

#apache
yum install httpd httpd-devel

#启动ahache
systemctl start httpd

#设置开机自启
systemctal enable httpd

#防火墙设置开启80端口
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload

#查看80端口
yum install lsof
lsof -i:80

Mysql安装

yum install wget (若是自带wget就不必安装了)
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

#安装mysql-com/mysql-community-release-el7-5.noarch.rpm包
rpm -ivh mysql-community-release-el7-5.noarch.rpm

#安装完成后会在/etc/yum.repos.d/目录下新增mysql-community.repo 、mysql-community-source.repo 两个 yum 源文件。

#进入/etc/yum.repos.d/安装mysql
yum install mysql-server

#检查是否安装成功
rpm -qa | grep mysql

#启动mysql服务
systemctl start mysqld.service
systemctl enable mysqld.service

#mysql 安全设置
mysql_secure_installation

PHP安装 

yum install php
yum install php-mysql
yum install -y php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap 

##安装php后重启apache使其生效
systemctl restart httpd.service

#测试php,在网站根目录/var/www/html/下新建 index.php 文件
写入:    <?php phpinfo(); ?>
访问ip/index.php ,出现phpinfo界面说明安装完成

安装 Snort

安装依赖

yum install gcc flex bison zlib zlib-devel libpcap libpcap-devel pcre pcre-devel libdnet libdnet-devel tcpdump
yum -y install epel-release
yum -y install nghttp2

 安装daq和snort

记得下载到对应的目录下,别下乱了

wget https://www.snort.org/downloads/snort/daq-2.0.7.tar.gz
wget https://www.snort.org/downloads/snort/snort-2.9.20.tar.gz

 

 下载好后进入目录解压编译

对daq进行编译

tar -xvzf daq-2.0.7.tar.gz
cd daq-2.0.7
./configure
make
make install

回到上级目录下载LuaJIT库,并编译

cd ..
wget https://luajit.org/download/LuaJIT-2.1.0-beta3.tar.gz
#解压
tar -xvzf LuaJIT-2.1.0-beta3.tar.gz
#进入src目录
cd LuaJIT-2.1.0-beta3/src
make
#接着到src上层目录进行make install
cd ..
make install

下载 openssl依赖

yum install openssl
yum install openssl-devel

 对snort进行编译

tar -xvzf snort-2.9.18.1.tar.gz
cd snort-2.9.18.1
./configure --enable-sourcefire
make
make install

查看安装的信息

snort -V

Snort配置

创建snort专用的用户和组

groupadd snort
useradd snort -r -s /sbin/nologin -c SNORT_IDS -g snort

配置目录

IDS 模式运行时会创建一些目录,其中配置文件储存在 /etc/snort 中,规则储存在 /etc/snort/rules中,编译规则储存在 /usr/local/lib/snort_dynamicrules 中,日志粗存在 /var/log/snort 中

#创建snort目录
mkdir /etc/snort
mkdir /etc/snort/rules
mkdir /etc/snort/rules/iplists
mkdir /etc/snort/preproc_rules
mkdir /usr/local/lib/snort_dynamicrules
mkdir /etc/snort/so_rules


#创建储存规则文件
touch /etc/snort/rules/iplists/black_list.rules
touch /etc/snort/rules/iplists/white_list.rules
touch /etc/snort/rules/local.rules
touch /etc/snort/sid-msg.map

#创建日志目录
mkdir /var/log/snort
mkdir /var/log/snort/archived_logs


#修改文件权限
chmod -R 5775 /etc/snort
chmod -R 5775 /var/log/snort
chmod -R 5775 /var/log/snort/archived_logs
chmod -R 5775 /etc/snort/so_rules
chmod -R 5775 /usr/local/lib/snort_dynamicrules


#修改文件属主
chown -R snort:snort /etc/snort
chown -R snort:snort /var/log/snort
chown -R snort:snort /usr/local/lib/snort_dynamicrules


#将配置文件从源文件复制到/etc/snort/中
cd /snort-2.9.18.1/etc/    # (进入snort安装目录,每个人可能不同)

cp *.conf* /etc/snort
cp *.map /etc/snort
cp *.dtd /etc/snort

cd /root/snort-2.9.18.1/src/dynamic-preprocessors/build/usr/local/lib/snort_dynamicpreprocessor
cp * /usr/local/lib/snort_dynamicpreprocessor/

配置规则

我们使用官方给的免费的社区规则,如果有需要的话可以选择官方的其他套餐
(社区套餐免费;注册即可领注册套餐;付费套餐)

https://www.snort.org/downloads/community/community-rules.tar.gz

解压,添加 

tar -xvzf community-rules.tar.gz
cp community-rules/* /etc/snort/rules/

修改配置文件

vim /etc/snort/snort.conf

# 在45行附近  ipvar HOME_NET <any>修改为本机的内部网络
ipvar HOME_NET <ip>.1/24

 通过 / 进行查询关键字即可找到位置

 

 # 在104行附近  配置规则文件路径
var RULE_PATH /etc/snort/rules
var SO_RULE_PATH /etc/snort/so_rules
var PREPROC_RULE_PATH /etc/snort/prepproc_rules
var WHITE_LIST_PATH /etc/snort/rules/iplists
var BLACK_LIST_PATH /etc/snort/rules/iplists

 

#在515行  output unified2:....... 之后添加
output unified2: filename snort.u2, limit 128

 

#546行,取消注释local.rules文件,后面的 include 文件均注释掉
include $RULE_PATH/local.rules

保存,退出

检查规则是否配置完成

snort -T -c /etc/snort/snort.conf

 配置成功

规则编写

进入local.rules编写自定义规则

vim /etc/snort/rules/local.rules

此条规则的sid为1,任意ip的任意端口访问 192.168.171.130的80端口时

提示 "A test guys" 

alert tcp any any -> 192.168.171.130 80 (msg:"A test guys";sid:1)

 激活 snort 控制台检测流量,此处需要看一下自己的网卡,我的是ens32

snort -A console -q -u snort -g snort -c /etc/snort/snort.conf -i ens32

 启动后尝试对目标进行访问

查看snort监听这边,已经成功匹配记录下来

 

规则详细使用

规则选项

msg - 在报警和包日志中打印一个消息。
logto - 把包记录到用户指定的文件中而不是记录到标准输出。
ttl - 检查ip头的ttl的值。
tos 检查IP头中TOS字段的值。
id - 检查ip头的分片id值。
ipoption 查看IP选项字段的特定编码。
fragbits 检查IP头的分段位。
dsize - 检查包的净荷尺寸的值 。
flags -检查tcp flags的值。
seq - 检查tcp顺序号的值。
ack - 检查tcp应答(acknowledgement)的值。
window 测试TCP窗口域的特殊值。
itype - 检查icmp type的值。
icode - 检查icmp code的值。
icmp_id - 检查ICMP ECHO ID的值。
icmp_seq - 检查ICMP ECHO 顺序号的值。
content - 在包的净荷中搜索指定的样式。
content-list 在数据包载荷中搜索一个模式集合。
offset - content选项的修饰符,设定开始搜索的位置 。
depth - content选项的修饰符,设定搜索的最大深度。
nocase - 指定对content字符串大小写不敏感。
session - 记录指定会话的应用层信息的内容。
rpc - 监视特定应用/进程调用的RPC服务。
resp - 主动反应(切断连接等)。
react - 响应动作(阻塞web站点)。
reference - 外部攻击参考ids。
sid - snort规则id。
rev - 规则版本号。
classtype - 规则类别标识。
priority - 规则优先级标识号。
uricontent - 在数据包的URI部分搜索一个内容。
tag - 规则的高级记录行为。
ip_proto - IP头的协议字段值。
sameip - 判定源IP和目的IP是否相等。
stateless - 忽略刘状态的有效性。
regex - 通配符模式匹配。
distance - < distance - 强迫关系模式匹配所跳过的距离。
within - 强迫关系模式匹配所在的范围。
byte_test - 数字模式匹配。
byte_jump - 数字模式测试和偏移量调整

content

查找匹配净荷中的内容,并触发响应,选项数据可以包含混合文本和二进制数据,二进制数据放在两个管道符号"||"之间,表示为字节码,需要通过十六进制的方式进行表示

alert tcp any any -> any 139 (content:"|5c 00|p|00|I|00|P|00|E|00 5c|";)
alcet tcp any any -> any 80 (content:!"GET";)

 在请求中通过POST提交,包含字符 pass

 提交时通过wireshark抓包,抓取载荷中

编写规则

tcp流中如果载荷中出现 ”70 61 73 73“ 则提示 msg 字符串中的内容

 设置完后保存,重新刷新页面,snort这里并没有记录

 当我们通过burp 提交带有pass字符时

 snort这里进行报警

 SQL注入测试

写一条又臭又长的规则,里面是sql关键字

nocase:与content配套使用,申明content大小写字符串不敏感

distance:与content配套使用,本次匹配内容与上次匹配payload内容的间距,同时确保不一样的content匹配内容存在匹配的顺序,distance生效的content为距离distance最近的左侧content

匹配上

 

PS:此篇笔记是根据师傅 Thgilil 文章中的内容一步步记录的,第一次接触这个东西,感谢师傅的文章让我学到很多

Thgilil 师傅的主页地址:Thgilil的博客_CSDN博客-渗透测试,环境搭建,蓝队领域博主

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/22953.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Airtest自定义启动器支持批量运行脚本,并兼容在AirtestIDE中使用

小编注&#xff1a;上期详细讲了Airtest启动器的原理&#xff0c;以及在最后给出了2个实现方案。本次是第2个方案的另一个实现案例&#xff0c;供大家学习参考。 Python v3.7.0 / Airtest: 1.1.1 / PocoUI: 1.0.78 自定义的启动器主要实现了以下功能&#xff1a; 将一些公共…

浙大医疗健康产业管理MBA提面经验分享

各位潜在的学弟学妹们好&#xff0c;很高兴和各位分享下我参加2022年浙大医疗产业管理MBA的提前批面试经验。在经过材料的撰写提交、面试备考各环节后顺利拿到优秀资格&#xff0c;为后面的笔试备考减轻了很大压力&#xff0c;回忆起去年的面试过程&#xff0c;我的面试以及备考…

沉睡者IT - 为你解密那些卖虚拟资源和知识付费课程的平台到底有多简单和多赚钱。

潜力博主推荐&#xff0c;点击上面关注博主 ↑ ↑ 上图为平台首页面截图&#xff0c;官方总站演示&#xff1a;vip.zzzz.la 备用演示&#xff1a;VIP.网站 1.虚拟资源平台介绍&#xff01; &#xff08;1&#xff09;虚拟资源项目站是一个在线知识付费平台&#xff0c;全自动…

Nacos 中的配置文件如何实现加密传输

小伙伴们知道&#xff0c;Spring Cloud Config 很早就提供了配置文件的加解密功能&#xff0c;并且支持对称加密和非对称加密两种不同的模式。Nacos 作为分布式配置中心服务注册中心的合体&#xff0c;在配置文件加密这块一直差点意思&#xff0c;不过好在&#xff0c;如果你使…

公众号免费搜题系统调用方法

公众号免费搜题系统调用方法 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 查题校园题库&#xff1a;查题校园题库后台&#xf…

SQL Server 服务的启动

目录 前言&#xff1a; 一、进入控制面板 二、开启 SQL Server 服务 1. 找到管理工具并点击 2. 双击服务 3. 找到SQL Server 数据库服务 4. 右键点击 SQL Server 服务&#xff0c;选择启动 三、修改 SQL Server 服务的启动方式 1. 右键点击服务&#xff0c;点击属性 …

激发客户潜在需求

企业不光要看到客户的显现需求&#xff0c;更要挖掘客户的潜在需求&#xff0c;因为客户的潜在需求是可以转化为显现需求的&#xff0c;满足客户的潜在需求可以为企业带来更多经济效益。 前言 潜在需求是指消费者虽然有明确意识的欲望&#xff0c;但由于种种原因还没有明确的显…

Redis的缓存更新策略和缓存问题

1.缓存更新 1.1缓存更新策略 内存淘汰&#xff1a; 不需要自己维护&#xff0c;利用Redis的内存淘汰机制&#xff0c;当内存不足时自动淘汰部分数据&#xff0c;下次查询时更新缓存一致性 &#xff1a; 差维护成本&#xff1a;无 超时删除&#xff1a; 给缓存数据添加TTL时间…

零基础自学javase黑马课程第十五天

零基础自学javase黑马课程第十五天 ✨欢迎关注&#x1f5b1;点赞&#x1f380;收藏⭐留言✒ &#x1f52e;本文由京与旧铺原创&#xff0c;csdn首发&#xff01; &#x1f618;系列专栏&#xff1a;java学习 &#x1f4bb;首发时间&#xff1a;&#x1f39e;2022年11月21日&…

【案例设计】配置与批量化处理外部 Texture 导入格式转换

开发平台&#xff1a;Unity 2020 版本以上 编程平台&#xff1a;Visual Studio 2020 版本 编程语言&#xff1a;CSharp   前言 Unity 开发者不仅是要求在面对开发需求上有着预见性的目光与能力去应对各种功能实现。更加注重的是通过各个项目的开发类型与过程&#xff0c;总结…

计算机体系结构:不同改进方案的性价比计算

题目内容 某一计算机用于商业外贸的事务处理&#xff0c;有大量的字符串操作。由于这种事务处理很普遍&#xff0c;有较大的市场&#xff0c;故而设计人员决定在下一代此类计算机的CPU中加入字符串操作的功能。经测试应用软件调查发现&#xff0c;字符串操作的使用占整个程序运…

进程切换及一些常见概念(面试必问)

目录前言一、竞争性1、什么是进程的竞争性&#xff1f;2、为什么进程间存在竞争性&#xff1f;二、独立性#这里先简单了解三、并行四、并发五、优先级队列六、进程切换寄存器1. 函数返回值2. 进程上下文数据总结前言 在不同的进程在处理机上切换的过程中&#xff0c;我们需要学…

碳酸钙/GPC3单克隆抗体介导阿霉素二氧化硅纳米粒/DOX-GNRs@mSiO2-HA-RGD纳米制备方法

小编在这里整理了碳酸钙/GPC3单克隆抗体介导阿霉素二氧化硅纳米粒/DOX-GNRsmSiO2-HA-RGD纳米制备方法&#xff0c;来看&#xff01; 碳酸钙阿霉素二氧化硅纳米颗粒制备方法&#xff1a; 包括以下步骤&#xff1a; 将含有钙离子的乙醇溶液与含有氨水与盐酸阿霉素的水溶液混合,…

【Jupyter】远程连接Jupyter服务器

远程连接Jupyter 步骤一 配置Jupyter https://blog.csdn.net/MYRLibra/article/details/109599531 https://blog.csdn.net/weixin_40641725/article/details/114636779 安装 conda activate abc #激活虚拟环境 pip install jupyter #安装 jupyter notebook --generate-conf…

Webservice接口-WSDL文档【Webservice】

WSDL是一个用于精确描述Web服务的文档&#xff0c;WSDL文档是一个遵循WSDL-XML模式的XML文档。WSDL 文档将Web服务定义为服务访问点或端口的集合。在 WSDL 中&#xff0c;由于服务访问点和消息的抽象定义已从具体的服务部署或数据格式绑定中分离出来&#xff0c;因此可以对抽象…

python使用flask实现前后端分离通过前端修改数据库数据【全栈开发基础】

文章目录&#x1f68e;前言&#xff1a;&#x1f6fa;工具&#x1f693;截图&#x1f695;数据库截图&#x1f699;前端截图&#x1f698;代码&#x1f6b2;增加&#x1f355;前端 HTML&#x1f35f;后端 python&#x1f6f4; 删除&#x1f355;前端 HTML&#x1f35f;后端 pyt…

AMM 套利者

AMM 套利者 理由 以太坊和其他支持 EVM 的区块链上有很多 AMM。其中许多 AMM 是 UniswapV2 的分叉项目或与 UniswapV2 具有相同的接口。这些 AMM 的列表&#xff1a; Uniswap V2(以太坊)寿司交换&#xff08;以太坊&#xff09;煎饼掉期(BSC)MDEX(BSC/heco) ... 一旦相同代币…

SpiderPool - 云原生容器网络 IPAM 插件

SpiderPool 来源于容器网络落地实践的经验积累&#xff0c;是「Daocloud 道客」开源的原生容器网络 IPAM 插件&#xff08;github&#xff1a;https://github.com/spidernet-io/spiderpool&#xff09;&#xff0c;主要用于搭配 Underlay CNI 实现容器云平台精细化的管理和分配…

策略验证_指标买点分析技法_运用boll布林线指标选择买点

写在前面&#xff1a; 1. 本文中提到的“股票策略校验工具”的具体使用操作请查看该博文&#xff1b; 2. 文中知识内容来自书籍《同花顺炒股软件从入门到精通》 3. 本系列文章是用来学习技法&#xff0c;文中所得内容都仅仅只是作为演示功能使用 目录 解说 策略代码 结果 解…

基于云原生网关的可观测性最佳实践

作者&#xff1a; 井轶 为什么要进行可观测性建设 可观测性并不是一个新词&#xff0c;该词来源于控制理论&#xff0c;是指系统可以由其外部输出推断其其内部状态的程度&#xff0c;随着 IT 行业几十年的发展&#xff0c;IT 系统的监控&#xff0c;告警&#xff0c;问题排查…