认识Snort3 (1):编译、安装与简单使用

认识Snort3 (1):编译、安装与简单使用

图源:SAyuki - 《Gray》,Pid:79912976

Snort 简介

Snort,是一款开源的 IDS/IPS 软件,由思科公司(Cisco)主导开发,使用广泛。Snort 有三种模式——包嗅探模式(Packet Sniffer)、包记录模式(Packet Logging)、IPS模式(Intrusion Prevention System)。搭配自定义的规则、不同的插件与其他软件,Snort 能在不同的系统中发挥不同的作用。

本篇文章简单记录 Snort3 的编译、安装和简单使用流程。

编译安装 Snort3

例子中使用的操作系统是 Ubuntu Server 20.04.3 LTS。当然你也可以使用 Ubuntu 18.04.5 LTS,或者其他 Linux 发行版。某些发行版由于内核配置原因无法编译 libdaq 的部分插件(例如 NFQ),这时 Snort 虽然无法提供防护功能,但仍然可以作为入侵检测系统(IDS)来使用。

快速导入 Ubuntu Server 虚拟机

Ubuntu Server 虚拟机其实不必下载 ISO 镜像后再用 VMWare 等虚拟化软件从头进行安装。Ubuntu 官方已经提供了预安装的虚拟磁盘的下载(如 Kali Linux 官方所做的那样),即 Ubuntu Cloud Images

image-20210411151459857

以 20.04 LTS daily build 为例,找到对应的 OVA 文件:

image-20210411151519613

以VMWare Workstation为例,双击下载的OVA文件,唤起VMWare Workstation的导入向导;或先打开VMWare Workstation主程序,左上角“文件”菜单中点击“打开”,然后选择OVA文件。

阅读更多
D^3CTF 2021 - Misc - easyQuantum WriteUp

D^3CTF 2021 - Misc - easyQuantum WriteUp

图源:@しぐれうい 《雨に恋う》 83975808

cap.pcapng用Wireshark打开,清晰可见TCP的三次握手和四次挥手:

image-20210225173442277

image-20210225173518052

于是需要仔细分析中间的数据传输过程。

注意到某些数据包内有“numpy”等字符串:

image-20210225173716886

于是想到可能是某种兼容Python的序列化方法。

又注意到有固定的头部数据:

image-20210225174044360

image-20210225174106286

而pickle序列化时也有固定的头部数据(协议版本4.0):

image-20210225174451338

于是尝试利用pickle进行反序列化。示例如下:

1
2
3
4
5
6
7
8
9
10
import pyshark
import pickle

cap = pyshark.FileCapture('cap.pcapng')
test_pack = cap[3]
data = test_pack.data.data.binary_value

deserialized = pickle.loads(data)

print(deserialized)
阅读更多
D^3CTF 2021 - Misc - Robust WriteUp

D^3CTF 2021 - Misc - Robust WriteUp

图源:@電瘋扇 《仓鼠松鼠》 91999586

“Robust”意为“鲁棒性”。

打开cap.pcapng,发现都是QUIC协议的数据包。结合提供的firefox.log(即使用firefox浏览器访问时生成的SSL Key Log)可以想到基于QUIC协议且强制使用TLS 1.3的HTTP3。

导入SSL Key Log:

image-20210301153942031

清晰可见HTTP3数据包。利用过滤器过滤出所有HTTP3数据包,然后从头查看:

1
http3

image-20210301154351049

可以明显看出,642号包之前的部分是在载入网页和JavaScript脚本。在第642号包处可以发现一个m3u8 playlist:

image-20210305163835730

阅读更多
RCTF 2019 杂项 Disk WriteUp

RCTF 2019 杂项 Disk WriteUp

图源:《明日方舟》游戏背景 龙门之夜

我又来随便糊一篇文章了。

题目设定如下:

An otaku used VeraCrypt to encrypt his favorites.

Password: rctf

Flag format: rctf{a-zA-Z0-9_}

题目给的提示十分简单。于是准备 VeraCrypt,开始解题。

找前半段Flag

首先下载题目附件,得到 rctf-disk.zip,解压得到 encrypt.vmdk。因为无法确定 vmdk 是 VeraCrypt 加密完的虚拟硬盘文件随便改了个格式,还是存储了 VeraCrypt 加密后虚拟磁盘文件的虚拟磁盘(这话真的超级绕hhh),因此先尝试使用 7zip 打开该文件。

7zip可以成功打开

阅读更多
西湖论剑预选赛Misc第二题Write-UP

西湖论剑预选赛Misc第二题Write-UP

图源:“西湖论剑”线上赛主页

所以说,近期铺天盖地宣传的“西湖论剑”网络安全技能赛预选已经结束了。在这里随便糊一篇文章(也是我第一次写Write-Up文章),就聊聊杂项最先放出的那个第二题的解法。

首先拿到题,解压,发现里面有“题目描述”,先看描述,是这么写的:

我们截获了一些IP数据报,发现报文头中的TTL值特别可疑,怀疑是通信方嵌入了数据到TTL,我们将这些TTL值提取了出来,你能看出什么端倪吗?

然后看给出的另一个文件,ttl.txt,里面的内容是这样的:

image-20210411163821143

不难发现TTL值只有 $63$,$127$,$191$,$255$ 四种,都是$2$的某次幂$-1$的值。于是将这四个数都转换成二进制,得到 $111111_2$、$1111111_2$、$10111111_2$、$11111111_2$ 四个二进制数。从后面两个数字可以观察到二进制数的开头两位似乎有关系。又因为TTL值为一个8位整数,进行合理猜想,不妨将不足8位的二进制数开头补0,变为8位后再取开头两位。即:$00111111_2$、$01111111_2$、$10111111_2$、$11111111_2$提取开头两位为:$00_2$、$01_2$、$10_2$、$11_2$,恰好为全排列,可以用于数据的存储。

这样每组两个比特,四组就可以组成一个字节。博客园上也有文章提到了这种数据隐藏方式(点击这里)。

阅读更多
Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×