snort实现入侵检测(实验内容,未完成)
一、实验目的
理解基于网络的入侵检测系统的基本原理,掌握snort IDS工作机理;
学习应用snort三种方式工作;熟练编写snort规则;
完成snort数据包记录、日志查看、字符串匹配、ARP欺骗攻击检测、端口扫描工具检测等功能。
二、系统环境
Linux(已安装Snort,群共享下载,账号:root;密码:jlcssadmin);
kali(攻击主机)
三、实验步骤
1. 启动snort
进入IDS工作目录/opt/ExpNIS/NetAD-Lab/Tools/ids,运行snort对网络接口eth0进行监听,要求如下:
(1)仅捕获kali发出的icmp回显请求数据包。
(2)采用详细模式在终端显示数据包链路层、应用层信息。
(3)对捕获信息进行日志记录,日志目录/var/log/snort。
snort命令参考
./snort -i eth0 -dev icmp and src kali的IP -l /var/log/snort
本机(IDS)执行上述命令,kali对当前主机进行ping探测,根据snort捕获信息填写下表
数据帧源MAC |
00:0C:29:A3:A4:8A |
数据帧目的MAC |
00:0C:29:5F:0:10 |
IP上层协议类型 |
IP(800) |
数据包源IP |
192.68.43.6 |
数据包目的IP |
192.168.43.164 |
数据包总长度 |
(0x62)98byte |
IP报文头长度 |
20byte |
ICMP报文头长度 |
8byte |
ICMP负载长度 |
84-20(64) |
ICMP类型/代码 |
8/0 |
Snort运行的截图如下:
查看snort日志记录
snort数据包记录
(1)对网络接口eth0进行监听,仅捕获kali发出的Telnet请求数据包,并将捕获数据包以二进制方式进行存储到日志文件中(/var/log/snort/snort.log)。
Snort命令:snort -i eth0 -b tcp and src 同组主机IP and dst port 23
(2)当前主机执行上述命令,同组主机telnet远程登录当前主机。
(3)停止snort捕获(Ctrl+C),读取snort.log文件,查看数据包内容。
snort命令 ./snort -dvr /var/log/snort/snort.log.1651584654
3.简单报警规则
(1)在snort规则集目录ids/rules下新建snort规则集文件new.rules,对来自外部主机的、目标为当前主机80/tcp端口的请求数据包进行报警,报警消息自定义。
snort规则 alert TCP any any -> 192.168.43.164 80 (msg:”you ren yao lian jie 80”)
根据规则完成下表填写。
snort规则动作 |
alert |
规则头协议 |
tcp |
规则头源信息 |
![192.168.43.164] |
规则头目的信息 |
192.168.43.164 80 |
方向操作 |
-> |
报警消息 |
you ren yao lian jie 80 |
(2)编辑snort.conf配置文件,使其包含new.rules规则集文件,打开snort.conf,切换至编辑模式,在最后添加新行包含规则集文件new.rules。
添加包含new.rules规则集文件语句_include $RULE_PATH/new.rules
(3)以入侵检测方式启动snort,进行监听。
启动snort的命令 ./snort -A full -dev -c /opt/ExpNIS/NetAD-Lab/Tools/ids/snort.conf
以入侵检测方式启动snort,同组主机访问当前主机Web服务。
查看报警日志(/var/log/snort/alert),结果如下
4.字符串匹配
(1)在snort规则集目录/opt/ExpNIS/NetAD-Lib/Tools/ids/rules下新建snort规则集文件new2.rules,对网络中由vsFTPd参与的通信进行报警,并在FTP服务器声明身份后第一时间内捕获FTP客户端登录用户名及登录口令。
(2)利用activate/dynamic规则对实现。
snort规则 activate tcp any 21 -> any any (activates: 81; content: "vsFTPd"; msg: "FTP User Login"; )
dynamic tcp any any -> any 21 (activated_by: 81; count: 10; msg: "User Name and PASSWORD"; )
(3)编辑snort.conf配置文件,使其包含new2.rules规则集文件。
(4)以入侵检测方式启动snort,进行监听。网络传输数据中的FTP用户名及口令数据是应用层数据,默认情况下snort不显示和记录应用层数据,所以此处在启动snort时应指定其抓取、记录应用层数据。
启动snort的命令
远程FTP登录,登录用户名:guest,登录口令:guestpass。
查看报警日志(日志文件所在目录以远程FTP登录主机IP命名)提取出FTP客户端登录时所使用的用户名及登录口令。提取到的账号和密码如下。
FTP账号
FTP密码
后面都没做了,因为这个实验不用交。。。。感兴趣我可以做完
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通