Kamailio-Sngrep 短小精悍的利器

ops/2024/10/19 21:50:38/

一个sip的抓包小工具,在GitHub上竟然能够积累1K的star,看来还是有点东西,当然官方的友链也是发挥了重要作用

首先送上项目地址,有能力的宝子可以自行查看

经典的网络抓包工具有很多,比如:

  • Wireshark: 大而全
  • tcpdump: 较底层
  • Fiddler:主要用于HTTP/HTTPS协议
  • ……

但是对于本章要讲的SIP信令的抓包,也就是Wireshark、tcpdump,以及前面讲到过较为系统的Homer,如果嫌弃Wireshark笨重、tcpdump原始,那么就一起来看看这款短小精悍的sngrep

官方自己定义:是一款可以在命令行终端展示SIP电话消息流的工具,它能够支持实时的抓取并展现SIP包,也可以用来做一个pcap的阅读器。

面向命令行终端,具有可视化能力,实时抓取并展示,简直是生产调试与运维的利器。

  • 如何安装?
  • 如何使用?
    • 如何抓取
    • 如何查看pcap文件

如何安装?

前提条件,需要服务器上具备这些模块:

  • libncurses5 - for UI, windows, panels.
  • libpcap - for capturing packets.
  • libssl - (optional) for TLS transport decrypt using OpenSSL and libcrypt
  • gnutls - (optional) for TLS transport decrypt using GnuTLS and libgcrypt
  • libncursesw5 - (optional) for UI, windows, panels (wide-character support)
  • libpcre - (optional) for Perl Compatible regular expressions
  • zlib - (optional) for gzip compressed pcap files

可以使用autotools构建,或者cmake,基本是类似的,我这边就用的常规centos系统

autotools:

./bootstrap.sh
./configure
make
make install (as root)

cmake:

mkdir build && cd build
cmake [<options>] ..
make
make install (as root)

一切顺利,构建成功

如何使用?

sngrep 由于是网络抓包,因此至少需要sudo权限。

对于参数可以通过help来看一下

# sngrep --help
Usage: sngrep [-hVcivNqrD] [-IO pcap_dump] [-d dev] [-l limit] [-B buffer] [<match expression>] [<bpf filter>]-h --help		 This usage-V --version	 Version information-d --device		 Use this capture device instead of default-I --input		 Read captured data from pcap file-O --output		 Write captured data to pcap file-B --buffer		 Set pcap buffer size in MB (default: 2)-c --calls		 Only display dialogs starting with INVITE-r --rtp		 Capture RTP packets payload-l --limit		 Set capture limit to N dialogs-i --icase		 Make <match expression> case insensitive-v --invert		 Invert <match expression>-N --no-interface	 Don't display sngrep interface, just capture-q --quiet		 Don't print captured dialogs in no interface mode-D --dump-config	 Print active configuration settings and exit-f --config		 Read configuration from file-F --no-config	 Do not read configuration from default config file-T --text	 Save pcap to text file-R --rotate		 Rotate calls when capture limit have been reached

可以通过命令行指定后开启抓包,也可以开启后在内部过滤

  • -d 网口或设备
  • -I 主要是用于查看指定的pcap文件,以便查看sip对话的可视化图
  • -O 主要是将实时抓包的数据输出到文件
  • -r 主要是抓RTP, 指的是实时传输协议(Real-time Transport Protocol, RTP)数据包的有效载荷部分。RTP 是一个用于传输音频和视频等多媒体数据的网络协议,常用于流媒体服务、语音通信系统(如VoIP)、视频会议等场景中。
  • -l 给到数量限制,这个是重要的
  • -T 将pcap保存到文本文件

以上是比较常规的参数,常规的使用就是根据一些规则去抓取网络数据包,将pcap文件读取后展示。

如何抓取

sngrep, 直接开启抓,不管三七二十一,全抓

在这里插入图片描述

sngrep -d eth0 -O save.pcap port 5060 and udp,指定eth0网口,将数据保存到save.pcap文件,指定端口5060,指定udp类型

在这里插入图片描述

F7 开启页面过滤:

  • 关键词筛选 SIP From/SIP To/Source/Destination/Playload
  • 筛选信令类型,空格选中或取消
  • Filter 过滤

F6 查看类似tcpdump的原始数据
F2 Save就类似于-O,但是可以在页面筛选、取消某些会话的导出,-O就是全部了
Enter 看流图

在这里插入图片描述

如何查看pcap文件

sngrep -I file.pcap host 192.168.1.1 and port 5060, 从file.pcap读取抓包数据,过滤host和端口


http://www.ppmy.cn/ops/126811.html

相关文章

Java前后端交互:构建现代Web应用

在现代Web应用开发中&#xff0c;前后端分离是一种常见的架构模式。后端通常负责数据处理和业务逻辑&#xff0c;而前端则负责用户界面和用户体验。Java作为后端开发的强大语言&#xff0c;提供了多种方式与前端进行交互。本文将探讨Java后端与前端交互的几种主要方式&#xff…

性能评测第一,阿里开源可商用AI模型Ovis 1.6使用指南,AI多模态大模型首选

什么是 Ovis 1.6 Gemma 2 9B&#xff1f; Ovis 1.6 Gemma 2 9B 是阿里国际AI团队推出的最新多模态大模型&#xff08;Multimodal Large Language Model&#xff0c;MLLM&#xff09;。该模型旨在结构化地对齐视觉和文本嵌入&#xff0c;能够处理和理解多种不同类型的数据输入&…

面试应该问什么?

在求职者面试的过程中&#xff0c;向面试官提问是一个展现自己积极态度、对职位和公司兴趣以及进一步了解工作环境和职业发展机会的重要环节。以下是一些求职者可以在面试中向面试官提问的问题&#xff0c;这些问题旨在帮助你更全面地了解未来的工作环境、团队文化、以及个人职…

VScode实现服务器免密登录(亲测有效)

目录 1 免密步骤1.1 在本地生成密钥1.2 在vscode中下载Remote-SSH1.3 配置SSH文件1.4 在服务器中添加本地公开密钥1.5 远程免密连接试验 2 后记 1 免密步骤 1.1 在本地生成密钥 window R打开命令面板 ssh-keygen1.2 在vscode中下载Remote-SSH 1.3 配置SSH文件 本地密钥的文…

IBM Flex System服务器硬件监控指标解读

随着企业IT架构的日益复杂&#xff0c;服务器的稳定运行对于保障业务连续性至关重要。IBM Flex System作为一款模块化、可扩展的服务器解决方案&#xff0c;广泛应用于各种企业级环境中。为了确保IBM Flex System服务器的稳定运行&#xff0c;监控易作为一款专业的IT基础设施监…

git提交信息写错处理方式

在Git中&#xff0c;你可以通过使用rebase命令来合并提交记录。以下是一个简单的步骤来合并一系列提交&#xff1a; 使用git rebase -i开始交互式变基。在打开的编辑器中&#xff0c;你会看到一个提交列表。若要合并提交&#xff0c;将要合并的提交前面的pick改为squash或s。保…

文件上传漏洞-绕过js验证

1.漏洞原理&#xff1a; Web应用系统虽然对用户上传的文件进行了校验&#xff0c;但是校验是通过前端javascript代码完成的。由于恶意用户可以对前端javascript进行修改或者是通过抓包软件篡改上传的文件&#xff0c;就会导致基于js的校验很容易被绕过。 2.判断页面是否存在前…

【Flutter】Dart:类

在 Dart 中&#xff0c;类&#xff08;Class&#xff09;是面向对象编程的核心概念之一&#xff0c;提供了一种封装数据和功能的方式。理解 Dart 中的类以及它的相关特性是开发 Flutter 应用的基础。本教程将深入介绍 Dart 中类的定义、属性、构造函数、方法、接口、Mixin 以及…