Самый популярный инструмент Elastix:
Нужна ли для вашего общения АТС, чат или видео? Нужны инструменты для видеоконференций, презентаций и совместной работы в режиме реального времени? Хорошо, нет проблем, в этом случае вы можете использовать Elastix. Нет необходимости в каких-либо дополнительных сборах или дополнительных загрузках, и вы можете легко установить его на Windows, Linux или Raspberry Pi в качестве локального решения.
Кроме того, это поможет вам работать удаленно, делиться экранами, не ограничивать время для бесконечных пользователей и так далее. Кроме того, он дает вам возможность превращать посещения веб-сайтов в потенциальных клиентов и продажи, ведущие функции колл-центра и повествование и многое другое.
Многообещающие функции:
- Онлайн-конференции без приложений
- Простая установка и управление
- Живой чат и звонки с абонентами сайта
- Примечания к ответу на Fb-странице
- Предлагает первоклассное обслуживание клиентов
И самое главное, он доступен 24/7 с вашего удаленного рабочего стола или мобильного гаджета.
Лучший друг Камайлио:
Если вы хотите управлять более чем тысячами настроек звонков в секунду, в этом случае Kamailio станет вашим лучшим другом. Он опубликован под лицензией GPLv2+ и используется для создания обширных платформ для передачи голоса по IP (VoIP) и связи в реальном времени. Например, вы можете использовать этот инструмент для мгновенного чата, WebRTC и множества различных приложений.
Кроме того, он может лучше всего подходить для подъема по шлюзам SIP-to-PSTN , медиасерверам или системам АТС. С другой стороны, вы можете использовать его с ограниченными ресурсами и серверами операторского класса. А чтобы обеспечить высокую производительность, он написан для систем Unix/Linux, включая оптимизации для конкретных архитектур.
Мощные функции:
- Асинхронный SCTP, UDP и TCP
- Безопасные услуги через TLS для (голос, видео, текст) VoIP
- WebRTC (IPv4 и IPv6) с поддержкой WebSocket
- Отказоустойчивость маршрутизации, маршрутизация с наименьшими затратами и балансировка нагрузки
- Многие серверные системы поддерживают
Одним словом, его главная цель — стать комбинированной средой обитания для своих пользователей, чтобы они могли успешно работать на защищенных и масштабируемых серверах протокола инициации сеанса.
SIP Server Integration
Homer and homer encapsulation protocl (HEP) integration with sip server brings the capabilities to SIP/SDP payload retention with precise timestamping better monitor and detect anomilies in call tarffic and events correlation of session ,logs , reports also the power to bring charts and statictics for SIP and RTP/RTCP packets etc. We read about sipcapture and sip trace modules in project sipcapture_siptrace_hep.
Both Kamailio and Opensips HEP Integration are structurally simmilar. In kamailio SIPCAPTURE module enables support for –
● Monitoring/mirroring port● IPIP encapsulation (ETHHDR+IPHDR+IPHDR+UDPHDR)● HEP encapsulation protocol mode (HEP v1, v2, v3)
Figure showing Opensips integartion with external capturing agent via proxy agent ( which can be HOMER)
To achieve that, load and configure the SipCapture module in the routing script.
Snippets fro Kamailio Homer docker installation as a collector
Outsnippets from screen while the installation takes place
Capture tools
Store sip_trace in database
modparam("siptrace", "trace_to_database", 1) modparam("siptrace", "db_url", DBURL) modparam("siptrace", "table", "sip_trace")
where the sip_trace tabel description is
+-------------+------------------+------+-----+---------------------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+------------------+------+-----+---------------------+----------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | time_stamp | datetime | NO | MUL | 2000-01-01 00:00:01 | | | time_us | int(10) unsigned | NO | | 0 | | | callid | varchar(255) | NO | MUL | | | | traced_user | varchar(128) | NO | MUL | | | | msg | mediumtext | NO | | NULL | | | method | varchar(50) | NO | | | | | status | varchar(128) | NO | | | | | fromip | varchar(50) | NO | MUL | | | | toip | varchar(50) | NO | | | | | fromtag | varchar(64) | NO | | | | | totag | varchar(64) | NO | | | | | direction | varchar(4) | NO | | | | +-------------+------------------+------+-----+---------------------+----------------+
sample databse storage for sip traces
select * from sip_trace; | id | time_stamp | time_us | callid | traced_user | msg | method | status | fromip | toip | fromtag | totag | direction | +----+---------------------+---------+---------------------------------------------+-------------+----------------------------------- | 1 | 2019-07-18 09:00:18 | 417484 | MTlhY2VmNDdjN2QxZGM5ZDFhMWRhZThhZDU4YjE0MGM | | INVITE sip:altanai@sip_addr;transport=udp SIP/2.0 Via: SIP/2.0/UDP local_addr:25584;branch=z9hG4bK-d8754z-1f5a337092a84122-1---d8754z-;rport Max-Forwards: 70 Contact: <sip:derek@call_addr:7086;transport=udp> To: <sip:altanai@sip_addr> From: <sip:derek@sip_addr>;tag=de523549 Call-ID: MTlhY2VmNDdjN2QxZGM5ZDFhMWRhZThhZDU4YjE0MGM CSeq: 1 INVITE Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO Content-Type: application/sdp Supported: replaces User-Agent: Bria 3 release 3.5.5 stamp 71243 Content-Length: 214 v=0 o=- 1563440415743829 1 IN IP4 local_addr s=Bria 3 release 3.5.5 stamp 71243 c=IN IP4 local_addr t=0 0 m=audio 59814 RTP/AVP 9 8 0 101 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 a=sendrecv | INVITE | | udp:caller_addr:27982 | udp:sip_pvt_addr:5060 | de523549 | | in | | 2 | 2019-07-18 09:00:18 | 421675 | MTlhY2VmNDdjN2QxZGM5ZDFhMWRhZThhZDU4YjE0MGM | | SIP/2.0 100 trying -- your call is important to us Via: SIP/2.0/UDP local_addr:25584;branch=z9hG4bK-d8754z-1f5a337092a84122-1---d8754z-;rport=27982;received=caller_addr To: <sip:altanai@sip_addr> From: <sip:derek@sip_addr>;tag=de523549 Call-ID: MTlhY2VmNDdjN2QxZGM5ZDFhMWRhZThhZDU4YjE0MGM CSeq: 1 INVITE Server: kamailio (5.2.3 (x86_64/linux)) Content-Length: 0 | ACK | | udp:caller_addr:27982 | udp:local_addr:5060 | de523549 | b2d8ad3f | in | ... +----+---------------------+---------+---------------------------------------------+-------------+-----------------------------------
Heplify
Multi-Protocol Go HEP Capture Agent made https://github.com/sipcapture/heplify
wget https://dl.google.com/go/go1.11.2.linux-amd64.tar.gz sudo tar -C /usr/local -xzf go1.11.2.linux-amd64.tar.gz
move package to /usr/local/go
mv go
Either add go bin to ~/.profile
export PATH=$PATH:/usr/local/go/bin
and apply
source ~/.profile
or set GO ROOT , and GOPATH
export GOROOT=/usr/local/go export GOPATH=$HOME/heplify export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
installation of dependencies
go get
clone heplify repo and make
make
CAPTAGENT
New OSS Capture-Agent framework with capture suitable for SIP, XMPP and more. With internal method filtering , encryption and authetication this does look very promising howevr since I have perosnally not tried it yet , I will leave this space TBD for future
- tbd
Плюсы и минусы использования sngrep.
Плюсы:
+ утилита проста в освоении.
+ утилита имеет наглядное представление хождения трафика.
+ хорошо подходит для срочного анализа дампов и скорой отладки.
+ подходит для обучения молодым VoIP-инженерам.
+ хороший базовый функционал.
+ возможность рассмотрения пакетов в связке.
+ гибкая настройка интерфейса.
Минусы:
— не подходит для глубокого анализа трафика.
— нет возможности прослушать дамп.
— не подходит для анализа большого дампа.
В рамках компенсации минусов данной утилиты был разработан мощный инструмент для анализа VoIP-трафика – Wireshark, узнать о котором Вы можете из статьи на нашем сайте.
SIP-серверы для Linux
Сип-серверов для операционной системы Linux очень много. Каждый из них обладает как своими плюсами, так и некоторыми минусами.
Ниже представлены 3 сервера, которые являются лучшими в классе по мнению многих экспертов.
Ekiga
Разработкой данного софта занимался Дамьен Сандрас. Эта программа по умолчанию встроена в Ubuntu и представляет собой утилиту SIP/NetMeeting-клиента. Имеются поддержка SIP-телефонии и интегрированные адресные книги. Есть возможность работы внутри локальных сетей.
Asterisk
Этот СИП-сервер является одним из самых востребованных для организации телефонии в сфере бизнеса. Разработали его ещё в 1999 году для замены дорогих мини-АТС. Софт позволяет проводить видеосеансы, взаимодействует со стандартной телефонией и умеет шифровать звонки, не допуская прослушивания. Единственный его минус – сложность функционала.
3CX Phone System
Данный сервер очень часто применяется при телефонизации компаний с большим числом работников. Он может быть использован в качестве call-центра или софта для конференцсвязи. Кроме того он встроен в CRM. Главный недостаток сервера заключается в его исходном коде закрытого типа, не позволяющего добавлять собственные разработки.
грубая акула
грубая акула — это эффективный инструмент сетевого криминалистического анализа (NFAT), который можно использовать для обработки и проверки сетевого трафика, такого как файлы PCAP, и захвата непосредственно с сетевых интерфейсов.
Он включает в себя реконструкцию сеансов TCP, построение карт сети, извлечение хэшей сильно зашифрованных паролей, преобразование хэшей в формат Hashcat для выполнения атаки Brute Force в автономном режиме.
Основная цель этого проекта — помочь сетевым администраторам и исследователям безопасности, ответственным за анализ сетевого трафика и выявление слабых мест.
Доступны две версии BruteShark: приложение на основе графического пользовательского интерфейса (GUI) для Windows и инструмент CLI для Linux и Windows. Некоторые из проектов, включенных в это решение, можно даже использовать независимо для анализа сетевого трафика на машинах Windows и Linux.
BruteShark также может выполнять различные операции, такие как извлечение DNS-запросов, вырезание файлов, извлечение вызовов VoIP (SIP, RTP), построение схемы сети для пользователей и сетевых узлов, извлечение хэшей аутентификации с использованием Hashcat (NTLM, HTTP-Digest, CRAM-MD5, Kerberos, д.), а также получение и кодирование паролей и имен пользователей.
Все проекты реализованы через .Net Standard и .Net Core для кроссплатформенной и современной поддержки. Это решение предлагает трехуровневую архитектуру и включает один или несколько проектов, включая PL, BLL и DAL на каждом уровне.
Через DAL (уровень доступа к данным) проект помогает читать необработанные файлы PCAP с использованием таких драйверов, как WinPcap, libpcap и библиотек-оболочек, таких как SharpPcap. Точно так же BLL (уровень бизнес-логики) отвечает за анализ сетевой информации (TCP, пакеты и т. д.), а PL использует сквозной проект и относится как к уровням BLL, так и к уровням DAL.
Тпрокси
Тпрокси — это простой инструмент командной строки с открытым исходным кодом для проксирования TCP-соединений по сети. Tproxy написан на языке программирования Go и представляет собой инструмент командной строки Go, упакованный в виде бинарного файла Go, поэтому он доступен на всех современных платформах Linux и macOS.
На изображении ниже показана командная строка для мониторинга соединений Mysql:
Его основной вариант использования — проксирование HTTP-соединений и проверка содержимого HTTP-запроса и ответов. Его также можно использовать для проксирования других протоколов, таких как SOCKS или TCP. Его можно использовать для проксирования TCP-соединений между двумя хостами или для анализа трафика в реальном соединении. Он полезен для отладки и тестирования приложений, использующих TCP в качестве транспортного протокола, а также для создания прокси-сервисов TCP.
Он был написан с целью предоставления простого в использовании интерфейса для утилиты командной строки tcpdump, позволяющей пользователям проксировать TCP-соединения и выполнять другие расширенные сетевые анализы без необходимости понимать базовый протокол TCP.
Ниже в командной строке отображаются соединения gRPC:
Он действует как TCP-прокси, позволяя вам подключаться к удаленным службам и приложениям, как если бы вы находились на локальном компьютере. Он позволяет создавать пользовательские службы TCP на удаленных хостах, аналогично обратному прокси-серверу TCP, который обеспечивает различные улучшения безопасности, устранения неполадок и производительности при работе с приложениями, использующими TCP.
Ниже приведены еще несколько вариантов использования Tproxy.
- Это полезно для отладки и оптимизации TCP-соединений.
- Это также полезно для понимания того, как работают другие прокси-программы, такие как Burp Suite и ZAP.
- Его можно использовать для проксирования TCP-соединений между двумя хостами или между хостом и удаленной службой TCP, такой как база данных или веб-служба.
- Мониторинг соединений MySQL и соединений gRPC, а также проверка надежности соединения с точки зрения скорости повторной передачи и RTT.
Большинство пользователей обнаружат, что Tproxy упрощает их рабочий процесс и позволяет им выполнять сложный сетевой анализ и анализировать веб-приложения без необходимости изменять приложение или саму сеть. Инструмент можно скачать с Гитхаб.
Homer Integration with influx DB
time series Reltiem DB install
wget https://dl.influxdata.com/influxdb/releases/influxdb_1.7.7_amd64.deb sudo dpkg -i influxdb_1.7.7_amd64.deb
start
>influxd 8888888 .d888 888 8888888b. 888888b. 888 d88P" 888 888 "Y88b 888 "88b 888 888 888 888 888 888 .88P 888 88888b. 888888 888 888 888 888 888 888 888 8888888K. 888 888 "88b 888 888 888 888 Y8bd8P' 888 888 888 "Y88b 888 888 888 888 888 888 888 X88K 888 888 888 888 888 888 888 888 888 Y88b 888 .d8""8b. 888 .d88P 888 d88P 8888888 888 888 888 888 "Y88888 888 888 8888888P" 8888888P" 2019-07-19T07:03:04.603494Z info InfluxDB starting {"log_id": "0GjGVvbW000", "version": "1.7.7", "branch": "1.7", "commit": "f8fdf652f348fc9980997fe1c972e2b79ddd13b0"} 2019-07-19T07:03:04.603756Z info Go runtime {"log_id": "0GjGVvbW000", "version": "go1.11", "maxprocs": 1} 2019-07-19T07:03:04.707567Z info Using data dir {"log_id": "0GjGVvbW000", "service": "store", "path": "/var/lib/influxdb/data"}
For Kamailio integration follow github instructions on https://github.com/altanai/kamailioexamples
References :
Call List Window in sngrep
The first window that sngrep shows is Call List window and it displays the different SIP Call-Ids found in messages. The displayed columns depend on your terminal width and your custom configuration. Columns and their descriptions are given in the table below.
Column | Description |
---|---|
Idx | Line number column. |
Method | Type of SIP message column. |
SIP From | SIP message From column. |
SIP To | SIP message To column. |
Msgs | Numerical amount of messages column. |
Source | Source IP and port number column. |
Destination | Destination IP and port number column. |
Call State | Call identifier column. |
The Call List window is shown below.
Call List Window in sngrep
➤Key Bindings:
Key | Function | Description |
---|---|---|
ESC | Quit | Escape and quit sngrep. |
Enter | Show | Show more information about the highlighted line item. |
Space | Select | After pressing the spacebar, the line is selected. With this you can select multiple lines and can be used with the F2 save option. |
F1 | Help | Gives a help menu. |
F2 | Save | Option to save the current capture session dialogs to a .pcap or .txt to a specific path and file name. |
F3 | Search | Gives the option to search in a more specific and granular way. |
F4 | Extended | Gives an extended view. |
F5 | Clear | Clear the screen. |
F7 | Filter | Like search but with more options to filter the end result. |
F8 | Settings | Adjust sngrep settings interface, capture options, call flow options, and EEP/HEP Homer options. |
F9 | Clear with Filter | Clear the screen with filter. |
F10 | Columns | Adjust what columns are displayed on the open sngrep window. |
Filter Option in Call List Window
In Call List window, you can filter the calls by pressing the F7 key.
The filtering options window is given below.
Filter Option in Call List Window
Call Flow Window in sngrep
The selected message payload will be displayed in the right side of the window.
Call Flow Window in sngrep
You can move between messages using arrow keys and select them using Spacebar. Selecting multiple messages will display the Message Diff Window.
➤Key Bindings:
Key | Function |
---|---|
Arrows | Move through messages. |
Enter | Display current message raw (so you can copy payload). |
F2 / d | Toggle SDP info instead of Method/ResponseCode in arrows. |
F3 t | Toggle message preview side panel. |
F4 x | Show current dialog and its extended one. |
F5 s | Show one column per address. |
F6 R | Show raw messages of dialogs. |
F7 c | Change flow color mode. |
F9 l | Turn on/off address resolution if enabled. |
9 | Increase/Decrease preview side panel. |
T | Restore preview side panel size. |
D | Only show messages that has SDP content. |
➤ There are several color modes to display the arrows:
Mode | Description |
---|---|
By Method/Response | Red for Method, Green for Responses. |
By Call-Id | Display current message raw. Each Call-ID one color, useful when displaying multiple calls flows. |
By CSeq | Each CSeq one color. |
➤There are a few common messages you will see in most calls, some with simple text names:
INVITEINVITE is used to set up a new media session between endpoints. INVITE will also typically contain session information in the form of SDP, which elaborates how to send media to/from your endpoint.
ACKYour platform should acknowledge the 200 OK. This is important, if the 200 OK is not ACK’d the call will be torn down automatically after a short time.
BYEOn receipt of this BYE the call is hung up. BYE is a new request (like an INVITE) and therefore the other party will respond with a 200 OK just as they would to an INVITE.
➤And some numeric codes, followed by a human-readable description:
100 TryingThis is simply an acknowledgement that indicates the request was received.
200 OK Once your call has been answered, this is the final stage of negotiating the call setup. This looks similar to INVITE but the SDP provides information about the remote party. At this point the call is already established, and two-way audio should take place.
➤Some of the most common (and some uncommon) codes are given below:
400 Bad Request |
401 Unauthorised |
402 Payment Required |
403 Forbidden |
404 Not Found |
406 Not Acceptable |
407 Proxy Auth Required |
408 Timeout |
410 Gone |
480 Temporarily Unavailable |
481 Call/Transaction Does Not Exist |
484 Address Incomplete |
486 Busy Here |
488 Not Acceptable Here |
500 Server Internal Error |
502 Bad Gateway |
503 Service Unavailable |
600 Busy Everywhere |
603 Decline |
Tegsoft makes no representations or warranties, either express or implied, by or with respect to anything in this document, and shall not be liable for any implied warranties of merchantability or fitness for a particular purpose or for any indirect, special or consequential damages.
Copyright 2021, Tegsoft. All rights reserved.
«Tegsoft» and Tegsoft’s products are trademarks of Tegsoft. References to other companies and their products use trademarks owned by the respective companies and are for reference purpose only.
5xx – ошибки сервера
SIP/2.0 500 Internal Server ErrorВнутренняя ошибка сервера.
SIP/2.0 500 DB TimeoutНет ответа от базы данных.
SIP/2.0 500 Database ErrorТо же самое, но в другой момент.
SIP/2.0 500 Wrong DB ResponseНеправильный ответ базы данных.
SIP/2.0 500 Undefined ReasonНеопределенная причина.
SIP/2.0 500 account has been moved to a remote systemАккаунт перенесен в удаленную систему (дословно).
SIP/2.0 500 Call placing quota exceededПревышен CPS.
SIP/2.0 501 Method Not Supported HereВ сервере не реализованы какие-либо функции, необходимые для обслуживания запроса. Метод запроса SIP не поддерживается.
SIP/2.0 502 Bad GatewayСервер, функционирующий в качестве шлюза или прокси-сервера, принимает некорректный ответ от сервера, к которому он направил запрос.
SIP/2.0 503 Service UnavailableСервер не может в данный момент обслужить вызов вследствие перегрузки или проведения технического обслуживания.
SIP/2.0 504 Server time-outСервер не получил ответа в течение установленного промежутка времени от сервера, к которому он обратился для завершения вызова.
SIP/2.0 505 SIP Version not supportedВерсия не поддерживается. Сервер не поддерживает эту версию протокола SIP.
SIP/2.0 513 Message too bigСервер не в состоянии обработать запрос из-за большой длины сообщения.
A 3 line patch solution
This was a source of frustration to me, and in true open source style, I “scratched my own itch” and in August 2018 spent some time trying to figure out what was causing this bug.
I am not a C programmer by trade, but the Freeswitch code is well structured and easy to follow.
Eventually I stumbled across the directory.
In this directory are several files implementing the different transports that the SOFIA SIP library supports; UDP, TCP and TLS.
After comparing the code in with the code in I discovered that 3 critical lines were missing from the TLS transport file. The lines that sent the received decrypted packets to the capture server.
So I added these lines in and made a pull-request.
Sadly after over 5 months later, the Freeswitch team haven’t given any feedback on my patch, despite several requests in the issue tracker and in their Slack channel. I was hoping that such a small patch, that would allow more people to use Freeswitch with TLS, would be accepted quickly (or at least be responded to with feedback). I guess they are too busy.
Anyway, never mind, if you are experiencing this issue too, I have created a patch file you can apply directly to a Freeswitch 1.8 tree.
Happy secure VoIPing!
Update 2019-02-26
The code has now been merged!
Описание утилиты.
Sngrep — это терминальная утилита, которая отлавливает SIP (Session Initiation Protocol) пакеты в реальном времени по Caller-Id и отображает ход потоков стрелками из узла в узел, аналогично используемым в SIP RFC. Данный инструмент был призван упростить процесс анализа трафика, а также сэкономить время администратора сервера на поиск неисправностей.
Из основных возможностей утилиты следует отметить:
— Захват SIP-пакетов в реальном времени.
— Захват SIP-пакетов с различных устройств, взаимодействующих с сервером.
— Возможность чтения дампа формата .pcap
— Возможность формирования дампов формата .pcap с захватом RTP, TCP, UDP.
— Возможность формирования дампов формата .pcap с интересующим Вас трафиком из общего пула информации, захваченной в реальном времени.
— Поддержка транспортных протоколов типа: RTP, TCP, TLS, UDP.
— Возможность фильтрации с использованием BPF (Berkeley Packet Filter).
Если Вас интересует, как установить и настроить sngrep, ознакомьтесь с нашей статьёй на тему: Установка и настройка sngrep.
Анализ трафика при помощи Wireshark
Сергей Пол
30 ноября 2015
Часто для анализа и устранения конкретной проблемы нужно взглянуть на реальный SIP-трафик от 3CX Phone System 3CX или от VoIP-клиента.
Например:
Вы можете проверить SIP трафик, поступающий на сервер, и таким образом убедиться, что он не будет блокироваться брандмауэром на стороне клиента или брандмауэром между сервером и VOIP-провайдером.
- Вы можете проверить, запросы STUN.
- Вы можете проверить формат INVITES и других сообщений SIP, которые отправляются VoIP-провайдером или VoIP-шлюзом.
- Вы можете просмотреть процесс регистрации телефонов.
Кроме того, Техническая Поддержка 3CX может попросить Вас дать информацию по SIP-трафику, чтобы проанализировать проблему более подробно.
Чтобы собрать SIP-трафик:
1. Загрузите и установите приложение для сбора. В данном примере мы используем Wireshark (), который можно загрузить сwww.wireshark.org
-
- Включите интерфейсы в меню. Перейдите в Capture > InterfaceТеперь выберите сетевой интерфейс, для которого будет отслеживаться трафик и нажмите на кнопку Start, после этого вы сможете видеть всю информацию и проходящих через этот интерфейс пакетах.
- Для того чтобы отслеживать только SIP-трафик,ведите слово SIP в поле Filter и нажмите Apply.4. Повторите действие, которое вы хотите проанализировать (например, регистрацию на VoIP-провайдере, или исходящий вызов).В главном окне программы будут отображаться только SIP-пакеты. После завершения, вы можете сохранить данные через меню File.Дополнительная фильтрация (если фильтр задан верно, поле подсвечивается зеленым):
- ip.addr == IP_АДРЕС (весь трафик С и НА данный адрес)
- ip.scr == IP_АДРЕС (весь трафик С данного адреса)
- ip.dst == IP_АДРЕС (весь трафик НА данный адрес)
- ip.scr == IP_АДРЕС && sip (весь SIP-трафик С данного адреса)
- ip.dst == IP_АДРЕС && sip (весь SIP-трафик НА данный адрес)
В программе Wireshark реализован удобный механизм для диагностики (анализа) VoIP-звонков, в частности можно получить графическую диаграмму звонков и посмотреть, как происходил обмен данными. Wireshark позволяет анализировать протокол SIP и его RTP-трафик.
Продемонстрируем это на примере.
Предположим, что во время выполнения VoIP-звонка с помощью программы Wireshark был выполнен захват сетевых пакетов и этот дамп следует проанализировать.
1. Откройте ранее сохраненный файл с дампом VoIP-пакетов.
2. Выберите SIP или RTP-пакет из списка (в нашем примере анализируем RTP-трафик). Для фильтрации пакетов вы можете в полеFilter ввести значение sip или rtp для отображения только определенного типа трафика.
3. Зайдите в меню Statistics (или Telephony, в зависимости от версии программы) > VoIP Calls.
Откроется окно VoIP Calls со списком VoIP-звонков.
В списке VoIP-звонков показывается следующая информация для каждого звонка:
- Start Time: Время начала звонка.
- Stop Time: Время окончания звонка.
- Initial Speaker: IP-адрес источника пакетов, который инициировал звонок.
- From: Для SIP-звонков в поле «From» отображается запрос INVITE.
- To: Для SIP-звонков в поле «To» отображается запрос INVITE.
- Protocol: Протокол.
- Packets: Число пакетов, участвующих в звонке.
- State: Статус звонка.
- Comment: Дополнительные комментарии.
- Выберите VoIP-вызов и затем нажмите кнопку Graph (или Flow, в зависимости от версии программы). Появится окно Graph Analysisс графической диаграммой обмена данными VoIP-звонка.
Если у вас есть интересные идеи или вам требуется помощь по настройке оборудования пишите всегда буду рад помочь.
mail: [email protected]
Описание ключей запуска.
-h or —help: отобразить справку по использованию.-V or —version: отобразить информацию о версии утилиты.-I or —input <filename.pcap>: прочесть дамп формата .pcap-r or –rtp: захватывать RTP-трафик/открыть с RTP.-O or —output <filename.pcap>: сохранить все захваченные пакеты в дамп .pcap-d or —device <device>: захватить трафик с определённого интерфейса. По умолчанию захватывается трафик со всех интерфейсов.-k or —keyfile <keyfile.pem>: использовать private keyfile для расшифровки TLS пакетов.-c or —calls: отображать только диалоговые окна.-l or —limit: лимитировать захвата трафика.-i or —icase: сделать выражения соответствия нечувствительными к регистру.-v or —invert: инвертировать выражения соответствия.-N or —no-interface: не отображать интерфейс sngrep, а просто произвести захват трафика.-q or —quiet: не выводить захваченные диалоги в режиме без интерфейса.-D or —dump-config: вывести конфиг.
Ниже будут рассмотрены примеры классических вариантов запуска sngrep с ключами:
1) sngrep port 5060 – захват всех SIP-пакетов со всех устройств на порту 5060.
2) sngrep -d eth0 -O /tmp/sip_capture.pcap host 192.168.0.50 port 5061 – отобразить SIP-пакеты с eth0, имеющего в качестве источника или назначения адрес 192.168.0.50 через порт 5061, найти дамп в /tmp/sip_capture.pcap
3) sngrep -I /tmp/sip_capture.pcap host 10.10.1.50 – отобразить все SIP-пакеты, захваченные с хоста 10.10.1.50, найти дамп в /tmp/sip_capture.pcap
Как устроен SIP-протокол
Модель протокола SIP – сугубо клиент-серверная.
Его ключевые функциональные элементы таковы:
- Пользовательский терминал – это устройство, посредством которого юзер управляет установкой и окончанием звонка. Реализуется как аппаратным способом, так и программным.
- Прокси-серверы – это устройства, принимающие и обрабатывающие запросы от пользовательских терминалов, осуществляя надлежащие запросу действия. В состав каждого входит клиентская часть и серверная, а потому они могут выполнять приём вызовов, инициируя запрос и возвращая ответ.
- Серверы переадресации – устройства для хранения записей о нынешнем местопребывании каждого имеющегося в сети терминала и прокси-сервера. Они не управляют звонками и не генерируют личные запросы.
- Серверы установления местопребывания юзеров – специальная база данных с адресными данными. Необходимы для гарантирования личной мобильности юзеров.
HEP protocol to the rescue!
One approach to solve this problem is to restrict the type of encrypted connection that Freeswitch
can establish (specifically forward secrecy) and then give the private key that your server is using to
the SIP capture tool.
Tools like SNGREP support this feature using the flag.
However I’ve never managed to get that to work, and besides, limiting the strength of the encryption
you’re using so that it can be intercepted seems to defeat the purpose.
This is where a protocol called HEP (Homer Encapsulation Protocol) comes to the rescue.
As the name suggests, it originally came out of the Homer SIP capture project.
But since then has been integrated into many SIP tools, including Freeswitch and SNGREP.
The basic idea behind HEP is to provide a way for the voice server itself to send the raw SIP packets
to a dedicated capture process after the packets have been decrypted.
This way, the voice server and handset can use any form of encryption they both support, and the decrypted packets can be sent to a local capture agent.
3xx – сообщения о переадресации
SIP/2.0 300 Multiple ChoicesУказывает несколько SIP-адресов, по которым можно найти вызываемого пользователя.
SIP/2.0 301 Moved PermanentlyВызываемый пользователь больше не находится по адресу, указанному в запросе.
SIP/2.0 302 Moved TemporarilyПользователь временно сменил местоположение. (Настроена переадресация по SIPUA в т.ч. с VOIP-телефона)
SIP/2.0 305 Use ProxyВызываемый пользователь не доступен непосредственно. Входящий вызов должен пройти через прокси-сервер.
SIP/2.0 380 Alternative ServiceЗапрошенная услуга недоступна, но доступны альтернативные услуги.
Проводник Wi-Fi
Последним в списке является Проводник Wi-Fi, у которого есть бесплатная версия для Windows и стандартная версия для Windows и macOS. Если анализ сети Wi-Fi — это все, что вам нужно (что в наши дни является стандартом), то Wifi Explorer облегчит вам жизнь.
Это красиво оформленный и многофункциональный инструмент для проникновения прямо в сердце сети.
Почетное упоминание: было бы плохой услугой закрыть этот пост, не упомянув эксклюзивный для macOS сетевой анализатор, на который я наткнулся — Маленький снитч. Он имеет встроенный брандмауэр, поэтому он дает дополнительное преимущество, позволяя сразу же полностью контролировать весь трафик (что может показаться болезненным, но в долгосрочной перспективе является огромным преимуществом).
Что дальше?
Вы также должны изучить это программное обеспечение для мониторинга сети для лучшей видимости инфраструктуры. Если вы хотите построить карьеру в области сетей и безопасности, ознакомьтесь с некоторыми из лучшие онлайн-курсы здесь.
Wireshark
Об этой программе знает, наверное, каждый, кто хотя бы раз сталкивался с задачей анализа трафика. Популярность Wireshark вполне оправданна: во‑первых, данный продукт бесплатен, во‑вторых, его возможностей вполне хватает для решения самых насущных вопросов, касающихся перехвата и анализа передаваемых по сети данных. Продукт пользуется заслуженной популярностью у вирусных аналитиков, реверс‑инженеров, системных администраторов и, безусловно, пентестеров.
Что такое Wireshark, знает, наверное, каждый
Этот анализатор имеет русскоязычный интерфейс, умеет работать с большим количеством сетевых протоколов (перечислять здесь их все лишено смысла: полный список можно найти на сайте производителя). В Wireshark можно разобрать каждый перехваченный пакет на части, просмотреть его заголовки и содержимое. У приложения очень удобный механизм навигации по пакетам, включая различные алгоритмы их поиска и фильтрации, есть мощный механизм сбора статистики. Сохраненные данные можно экспортировать в разные форматы, кроме того, существует возможность автоматизировать работу Wireshark с помощью скриптов на Lua и подключать дополнительные (даже разработанные самостоятельно) модули для разбора и анализа трафика.
Помимо Ethernet, сниффер умеет перехватывать трафик беспроводных сетей (стандарты 802.11 и протокол Bluetooth). Тулза позволяет анализировать трафик IP-телефонии и восстанавливать TCP-потоки, поддерживается анализ туннелированного трафика. Wireshark отлично справляется с задачей декодирования протоколов, но, чтобы понять результаты этого декодирования, надо, безусловно, хорошо разбираться в их структуре.
К недостаткам Wireshark можно отнести то, что восстановленные потоки не рассматриваются программой как единый буфер памяти, из‑за чего затруднена их последующая обработка. При анализе туннелированного трафика используется сразу несколько модулей разбора, и каждый последующий в окне программы замещает результат работы предыдущего — в итоге анализ трафика в многоуровневых туннелях становится невозможен.
В целом Wireshark — не просто популярный, но очень добротный продукт, позволяющий отследить содержимое гуляющих по сети пакетов, скорость их передачи, найти «проблемные места» в сетевой инфраструктуре. Но в отличие от коммерческих приложений здесь нет удобных инструментов визуализации. Кроме того, с помощью Wireshark не так уж и просто, например, выловить из трафика логины и пароли, а это одна из типичных задач при тестировании на проникновение.