
sippts v4.2.1
مجموعة أدوات لتدقيق أنظمة VoIP القائمة على SIP
ما هو Sippts؟
Sippts هي مجموعة أدوات لتدقيق خوادم وأجهزة VoIP باستخدام بروتوكول SIP. تمت برمجة Sippts بلغة Python وتتيح لنا التحقق من أمان خادم VoIP باستخدام بروتوكول SIP.
هل هي مجانية؟
نعم. يمكنك استخدامها وتعديلها وتوزيعها بحرية. إذا قمت بتعديلها، فيرجى تضمين إشارة إلى هذا الموقع.
هل يمكن استخدام sippts لأغراض غير قانونية؟
الغرض من هذه الأداة هو تدقيق أنظمتك الخاصة أو إجراء اختبارات اختراق على الأنظمة التي حصلت على إذن صريح بشأنها. أنا غير مسؤول عن سوء استخدام هذه الأداة.
الاستخدام
عرض المساعدة:``` sippts -h usage: sippts [-h] [-up] {video,astami,scan,exten,rcrack,send,wssend,enumerate,leak,ping,invite,dump,dcrack,flood,sniff,spoof,pcapdump,rtpbleed,rtcpbleed,rtpbleedflood,rtpbleedinject} ...
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⣀⣀⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣄⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣤⠤⠶⠒⠛⠉⠉⠉⠉⠀⠀⢀⣀⣀⣀⣤⣤⣤⣤⣤⣤⣤⣤⣬⣍⣙⣳⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⠴⠒⠋⠉⠀⠀⠀⢀⣀⣠⡤⠴⠖⠚⠛⠉⠉⠉⠀⣠⡶⠖⠲⣄⠀⠀⠀⠀⠀⠀⠀⠈⠉⢷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⡤⠖⠋⠁⠀⠀⠀⣀⣤⠴⠖⣛⣉⣁⠀⠀⠀⠀⠀⠀⠀⣀⣀⣠⡇⢹⡄⠀⠸⡆⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⣀⡤⠞⠋⠀⠀⠀⢀⣠⠴⠚⠋⠁⠀⠀⡿⡏⠀⠈⣧⣤⠴⠖⠚⠛⠉⠉⠳⢄⡀⠀⣧⠀⠀⢷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⢠⡞⠧⣄⠀⢀⣠⠴⠚⠉⠀⠀⠀⠀⠀⢀⣴⠇⢹⠀⠀⢸⡆⠀⠀⠀⠀⠀⠀⠀⠀⠉⣲⣿⣀⣠⣼⣦⣤⣀⣀⣀⡀⠀⢀⣀⣠⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⢀⡿⠀⠀⠈⣿⠉⠀⠀⠀⠀⠀⠀⠙⢄⣰⠏⠀⠀⠘⡇⠀⠀⣇⢀⣀⡤⠤⠖⠒⠛⠉⠉⠉⣁⣀⠀⠀⠀⠉⠙⠛⢿⣿⡛⠛⠛⢻⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⣸⣧⣄⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⢈⣿⡄⠀⠀⠀⣷⠴⠚⠋⠉⠀⠀⢀⣠⣴⡖⠛⠉⠿⢻⣿⣉⡉⠙⠓⢲⠦⢤⣈⠙⢶⣶⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⢠⣏⠙⢦⣹⣼⠀⠀⠀⠀⠀⠀⢀⣴⣾⠟⠁⢀⡏⢀⡞⠀⠀⠀⠀⠀⣰⣯⡟⡀⠀⣼⡏⢘⡢⢠⣷⣾⡿⠿⠿⣷⣤⣞⠀⠙⢦⡀⠀⠙⢿⣷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⣰⡟⠿⡍⢷⢀⡇⠀⠀⠀⠀⠀⠀⠀⣠⣾⠏⣧⠀⢀⡞⠁⠀⠀⠀⠀⢠⡴⠋⠛⠻⣧⣤⡶⢿⡹⡟⠛⢯⣉⣿⢾⣧⣄⡈⠙⠲⢝⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⢠⣏⠙⢦⣹⣼⠀⠀⠀⠀⠀⠀⢀⣴⣾⠟⠁⢀⡏⢀⡞⠀⠀⠀⠀⠀⣰⣯⡟⡀⠀⣼⡏⢘⡢⢠⣷⣾⡿⠿⠿⣷⣤⣞⠀⠙⢦⡀⠀⠙⢿⣷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ SIPPTS version 4.1.2 (updated) ⣿⣍⡓⣄⣿⣧⣤⣤⣤⣶⣶⠿⠟⠋⠀⠀⣠⣎⣠⠎⠘⢄⠀⠀⠀⢀⡏⠛⠙⠋⢸⠋⠧⠤⠗⣾⢻⠁⠀⠀⠀⠀⠈⠻⡳⡀⠀⠙⢦⠀⣠⡹⡟⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀ CVE version 0.1 (updated) ⣷⣤⣙⢾⣿⣭⡉⠉⠉⠁⠀⠀⣀⣠⠴⠚⠉⠉⠀⠀⠀⠈⠳⡀⠀⠘⣧⣤⢀⠀⢸⡶⣏⠙⣦⠹⡜⢦⡀⠀⠀⠀⠀⢀⡇⣿⣶⣶⣾⣿⣥⡇⠹⡌⠻⣄⠀⠀⠀⠀⠀⠀⠀⠀ https://github.com/Pepelux/sippts ⣿⠤⢬⣿⣇⠈⢹⡟⠛⠛⠛⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢆⠀⢻⡹⡎⠃⠀⠳⡄⣽⠛⠦⠉⠲⣍⣓⣒⢒⣒⣉⡴⠋⣟⠙⢲⣿⠘⠃⠀⣷⠀⠙⢧⡀⠀⠀⠀⠀⠀⠀by Pepelux - https://twitter.com/pepeluxx ⣿⠶⠒⠺⣿⡀⢸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢣⡀⠳⡄⢀⡀⠀⠙⠮⣗⠚⢠⡖⠲⣌⣉⡭⣍⡡⣞⠓⣾⠉⣽⠃⢠⡄⣼⣿⠀⠀⠈⠳⡄⠀⠀⠀⠀⠀ ⠸⡟⠉⣉⣻⣧⣼⠿⣦⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣄⠙⢮⡿⢿⡃⠀⠈⠑⠶⢽⣒⣃⣘⣲⣤⣗⣈⣹⠵⠛⠁⠀⠀⡴⣻⠃⠀⠀⠀⠀⠹⣆⠀⠀⠀⠀ ⠀⠹⣯⣁⣠⠼⠿⣿⡲⠿⠷⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢦⠀⠙⠳⣄⡀⠀⣄⣶⣄⠀⠉⠉⠉⣉⡉⠉⠀⠀⠘⣶⣴⣦⠞⠁⠀⠀⠀⠀⠀⠀⠘⣧⠀⠀⠀ ⠀⠀⠘⣧⡤⠖⢋⣩⠿⣶⣤⣈⣙⣷⣤⣀⣠⣤⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢳⡀⠀⠀⠉⠓⠶⢽⣼⣆⡀⠀⠀⢿⣿⣶⣀⣀⡬⠷⠚⠁⣀⣀⣀⠀⢰⣿⠿⡇⠀⠘⣧⠀⠀ ⠀⠀⠀⠀⠙⠾⣏⣤⠞⢁⡞⠉⣿⠋⣹⠉⢹⠀⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⡄⠀⠀⠀⠀⠀⠀⠉⠉⠉⠉⠉⠉⠉⠉⠀⣤⣤⣄⠀⣿⠙⢻⠆⠀⠓⢒⣁⡤⠴⠺⡆⠀ ⠀⠀⠀⠀⠀⠀⠀⠙⠒⠻⠤⣴⣇⣀⣿⣀⣾⡤⠿⢷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣆⠀⠀⠀⠀⠀⣀⣀⡀⠀⢸⠿⢷⡄⠀⣿⣀⡿⠀⢈⣉⡭⠴⠒⠋⠉⠀⠀⠀⠀⢻⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠻⣦⣀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢆⠀⠀⠀⠰⣟⠛⡇⠀⠘⠧⠞⢁⣀⡤⠴⠒⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀⣀⣠⣼⠃ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠳⣦⣀⠀⠀⠀⠀⠀⠀⠈⢧⠀⠀⠀⠉⢋⣁⡤⠴⠚⠋⠉⠀⠀⠀⠀⠀⠀⠀⢀⣀⣠⣴⠶⠚⠛⠉⢉⣽⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠷⣤⡀⠀⠀⠀⠀⠘⡆⠴⠒⠋⠉⠀⠀ ⢀⣀⣤⠴⠖⠛⠉⠉⠉⠉⠙⠛⠋⠉⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢛⠷⠦⠀⠀⠀⣿⠀⠀ ⠀⠀⠀⢠⠴⡖⠛⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠷⣤⡀⠀⠘⡆⠴⠒⠋⠉⣤⠴⠖⠛⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢛⢠⠴⡖⠛⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-= SIPPTS is a set of tools for auditing VoIP systems based on the SIP protocol =-
Commands: {video,astami,scan,exten,rcrack,send,wssend,enumerate,leak,ping,invite,dump,dcrack,flood,sniff,spoof,pcapdump,rtpbleed,rtcpbleed,rtpbleedflood,rtpbleedinject} video Animated help astami Asterisk AMI pentest scan Fast SIP scanner exten Search SIP extensions of a PBX rcrack Remote password cracker send Send a customized message wssend Send a customized message over WS enumerate Enumerate methods of a SIP server leak Exploit SIP Digest Leak vulnerability ping SIP ping invite Try to make calls through a PBX dump Dump SIP digest authentications from a PCAP file dcrack SIP digest authentication cracking flood Flood a SIP server sniff SIP network sniffing spoof ARP Spoofing tool pcapdump Extract data from a PCAP file rtpbleed Detect RTPBleed vulnerability (send RTP streams) rtcpbleed Detect RTPBleed vulnerability (send RTCP streams) rtpbleedflood Exploit RTPBleed vulnerability (flood RTP) rtpbleedinject Exploit RTPBleed vulnerability (inject WAV file)
Options: -h, --help show this help message and exit -up Update scripts
Command help: sippts -h
عرض المساعدة للأمر scan:```
sippts scan -h
usage: sippts scan [-i IP|HOST] [-f FILE] [-r REMOTE_PORT] [-p PROTOCOL]
[-proxy IP:PORT] [-m METHOD] [-d DOMAIN]
[-cd CONTACT_DOMAIN] [-fn FROM_NAME] [-fu FROM_USER]
[-fd FROM_DOMAIN] [-tn TO_NAME] [-tu TO_USER]
[-td TO_DOMAIN] [-ua USER_AGENT] [-ppi PPI] [-pai PAI] [-v]
[-vv] [-nocolor] [-o FILE] [-oi FILE] [-ot FILE] [-oj FILE]
[-ocsv FILE] [-cve] [-th THREADS] [-t TIMEOUT] [-ping]
[-fp] [-random] [-local-ip IP] [-h]
___ ___ ___ ___ _____ ___
/ __|_ _| _ \ _ \_ _/ __| ___ __ __ _ _ _
\__ \| || _/ _/ | | \__ \ (_-</ _/ _` | ' \
|___/___|_| |_| |_| |___/ /__/\__\__,_|_||_|
Module scan is a fast SIP scanner using multithread that can check several IPs and port ranges. It works with UDP, TCP and TLS protocols.
Target:
-i IP|HOST Host/IP address/network (ex: mysipserver.com | 192.168.0.10 | 192.168.0.0/24)
-f FILE File with several IPs or network ranges
-r REMOTE_PORT Ports to scan. Ex: 5060 | 5070,5080 | 5060-5080 | 5060,5062,5070-5080 | ALL for 1-65535 (default: 5060)
-p, --protocol PROTOCOL
Protocol: udp|tcp|tls|all (default: udp)
-proxy IP:PORT Use an outbound proxy (ex: 192.168.1.1 or 192.168.1.1:5070)
Headers:
-m METHOD SIP method: options, invite, register (default: options)
-d, --domain DOMAIN SIP Domain or IP address. Ex: my.sipserver.com (default: target IP address)
-cd CONTACT_DOMAIN Domain or IP address for Contact header. Ex: 10.0.1.2
-fn FROM_NAME From Name. Ex: Bob
-fu FROM_USER From User (default: 100)
-fd FROM_DOMAIN From Domain. Ex: 10.0.0.1
-tn TO_NAME To Name. Ex: Alice
-tu TO_USER To User (default: 100)
-td TO_DOMAIN To Domain. Ex: 10.0.0.1
-ua USER_AGENT User-Agent header (default: pplsip)
-ppi PPI P-Preferred-Identity
-pai PAI P-Asserted-Identity
Log:
-v Increase verbosity
-vv Increase more verbosity
-nocolor Show result without colors
-o FILE Save data into a log file
-oi FILE Save IPs into a log file
-ot FILE Save found hosts as ip:port/proto, ready for -f of exten, rcrack and leak
-oj FILE Save results into a JSON file
-ocsv FILE Save results into a CSV file
-cve Show possible CVEs
Other options:
-th THREADS Number of threads (default: 200)
-t, --timeout TIMEOUT
Sockets timeout (default: 5)
-ping Ping host before scan
-fp Try to fingerprinting
-random Randomize target hosts
-local-ip IP Set local IP address (by default try to get it)
-h, --help Show this help
Usage examples:
Searching for SIP services and devices with default ports (5060/udp) on the local network
sippts scan -i 192.168.0.0/24
Extend the port range from 5060 to 5080 and look for UDP, TCP and TLS services
sippts scan -i 192.168.0.0/24 -r 5060-5080 -p all
Load several target IP addresses from a file
sippts scan -f targets.txt
Random scanning for non-sequential scanning of IP ranges
sippts scan -f targets.txt -random
Disguise the tool behind another User-Agent
sippts scan -i 192.168.0.0/24 -ua Grandstream
Scan all ports and protocols of an address range using 500 threads (slow)
sippts scan -f targets.txt -r all -p all -th 500 -ua Grandstream
Typical scanning for large ranges
sippts scan -f targets.txt -r 5060-5080 -p all -th 500 -ua Grandstream -v -fp -o output.txt
Save the hosts found as ip:port/proto, to chain with exten, rcrack or leak
sippts scan -i 192.168.0.0/24 -r 5060-5080 -p all -ot targets.txt
sippts exten -f targets.txt -e 100-200 -oe extens.txt
sippts rcrack -f targets.txt -ef extens.txt -w wordlist.txt
Save the results as JSON or CSV, to process them with another tool
sippts scan -i 192.168.0.0/24 -oj result.json -ocsv result.csv
تحديث السكربتات:``` sippts -up
# مجموعة أدوات لاختبار الاختراق عبر بروتوكول SIP #
يمكنك الحصول على مساعدة حول كيفية استخدام هذه الأداة على https://sippts.seguridadvoip.com وكذلك على صفحات wiki في Github:
Sippts هي مجموعة أدوات لتدقيق خوادم وأجهزة VoIP باستخدام بروتوكول SIP. تمت برمجة Sippts بلغة Python وتتكون من الأوامر أو الوحدات التالية:
* _**scan**_ هو ماسح ضوئي سريع متعدد الخيوط لخدمات SIP. يمكنه فحص عدة عناوين IP ونطاقات منافذ، ويعمل عبر UDP وTCP وTLS. [انقر هنا لقراءة المزيد حول أمر scan](https://github.com/Pepelux/sippts/wiki/Command-scan)
* _**exten**_ يحدد الامتدادات على خادم SIP. كما يخبرك ما إذا كان الامتداد يتطلب المصادقة. يمكنه فحص عدة عناوين IP، ومع -f يقرأ الأهداف من ملف. [انقر هنا لقراءة المزيد حول أمر exten](https://github.com/Pepelux/sippts/wiki/Command-exten)
* _**rcrack**_ هو كاسر كلمات مرور عن بُعد. يمكنه اختبار كلمات المرور لعدة مستخدمين على عدة عناوين IP، ومع -f يقرأ الأهداف من ملف. [انقر هنا لقراءة المزيد حول أمر rcrack](https://github.com/Pepelux/sippts/wiki/Command-rcrack)
* _**invite**_ يتحقق مما إذا كان الخادم يسمح لنا بإجراء مكالمات دون مصادقة. إذا كان خادم SIP لديه إعدادات سيئة، فسيسمح لنا بإجراء مكالمات إلى أرقام خارجية. يمكنه أيضًا تحويل المكالمة إلى رقم خارجي ثانٍ. [انقر هنا لقراءة المزيد حول أمر invite](https://github.com/Pepelux/sippts/wiki/Command-invite)
* _**leak**_ يستغل ثغرة SIP Digest Leak التي اكتشفها Sandro Gauci، والتي تؤثر على عدد كبير من الأجهزة المادية والبرمجية. [انقر هنا لقراءة المزيد حول أمر leak](https://github.com/Pepelux/sippts/wiki/Command-leak)
* _**flood**_ يرسل رسائل غير محدودة إلى الهدف. [انقر هنا لقراءة المزيد حول أمر flood](https://github.com/Pepelux/sippts/wiki/Command-flood)
* _**send**_ يرسل رسالة SIP مخصصة ويحلل الاستجابة. [انقر هنا لقراءة المزيد حول أمر send](https://github.com/Pepelux/sippts/wiki/Command-send)
* _**wssend**_ يرسل رسالة SIP مخصصة عبر WebSockets ويحلل الاستجابة. [انقر هنا لقراءة المزيد حول أمر wssend](https://github.com/Pepelux/sippts/wiki/Command-wssend)
* _**enumerate**_ يعدّد الطرق المتاحة لخدمة أو خادم SIP. [انقر هنا لقراءة المزيد حول أمر enumerate](https://github.com/Pepelux/sippts/wiki/Command-enumerate)
* _**dump**_ يستخرج مصادقات SIP Digest من ملف PCAP. [انقر هنا لقراءة المزيد حول أمر dump](https://github.com/Pepelux/sippts/wiki/Command-dump)
* _**dcrack**_ يكسر مصادقات digest الخاصة ببروتوكول SIP. [انقر هنا لقراءة المزيد حول أمر dcrack](https://github.com/Pepelux/sippts/wiki/Command-dcrack)
* _**pcapdump**_ يستخرج بيانات SIP وRTP من ملف PCAP، ويمكنه حفظ تدفقات الصوت كملفات WAV. [انقر هنا لقراءة المزيد حول أمر pcapdump](https://github.com/Pepelux/sippts/wiki/Command-pcapdump)
* _**ping**_ يرسل ping عبر SIP للتحقق مما إذا كان الخادم أو الجهاز نشطًا. [انقر هنا لقراءة المزيد حول أمر ping](https://github.com/Pepelux/sippts/wiki/Command-ping)
* _**astami**_ يفحص ويدقق واجهة Asterisk Manager Interface (AMI)، ويمكنه تشغيل أمر على تلك التي تعمل فيها بيانات الاعتماد. [انقر هنا لقراءة المزيد حول أمر astami](https://github.com/Pepelux/sippts/wiki/Command-astami)
* _**sniff**_ يلتقط حركة مرور SIP مباشرة ويعرض الرسائل والأجهزة ومصادقات digest التي يراها. [انقر هنا لقراءة المزيد حول أمر sniff](https://github.com/Pepelux/sippts/wiki/Command-sniff)
* _**spoof**_ هو أداة انتحال ARP، لتضع نفسك بين جهازين وتلتقط حركة المرور بينهما. [انقر هنا لقراءة المزيد حول أمر spoof](https://github.com/Pepelux/sippts/wiki/Command-spoof)
* _**video**_ يشغّل عرضًا توضيحيًا متحركًا لسير العمل المعتاد: scan إلى exten إلى rcrack، وdump إلى dcrack، وleak إلى dcrack، وspoof إلى sniff.
* _**rtpbleed**_ لاستغلال ثغرة RTP Bleed بإرسال بيانات إلى منافذ RTP. [انقر هنا لقراءة المزيد حول أمر rtpbleed](https://github.com/Pepelux/sippts/wiki/Command-rtpbleed)
* _**rtcpbleed**_ لاستغلال ثغرة RTP bleed بإرسال بيانات إلى منافذ RTCP. [انقر هنا لقراءة المزيد حول أمر rtcpbleed](https://github.com/Pepelux/sippts/wiki/Command-rtcpbleed)
* _**rtpbleedflood**_ لاستغلال ثغرة RTP Bleed بإغراق منفذ RTP بحوار نشط. [انقر هنا لقراءة المزيد حول أمر rtpbleedflood](https://github.com/Pepelux/sippts/wiki/Command-rtpbleedflood)
* _**rtpbleedinject**_ لاستغلال ثغرة RTP Bleed بحقن حركة مرور RTP. [انقر هنا لقراءة المزيد حول أمر rtpbleedinject](https://github.com/Pepelux/sippts/wiki/Command-rtpbleedinject)
## شهادات TLS ##
sippts يتحدث TLS، وحتى الآن كان يتخلص من الشهادة. مع
`-tlsinfo` تقرأ وحدة `scan` ما يعرضه الخادم:```
sippts scan -i 192.168.0.1 -r 5061 -p tls -tlsinfo
لا يكلف اتصالاً إضافيًا، لأن المصافحة تحدث على أي حال. يأتي جدولان بعد الجدول المعتاد: ما تقوله الشهادة (إصدار TLS، التشفير، المفتاح، تاريخ الانتهاء، ومع -v أيضًا الموضوع، المُصدر، SAN وSHA-256)، وما يستحق الإبلاغ عنه بشأنها — منتهية الصلاحية، موقّعة ذاتيًا، مفتاح أقل من 2048 بت، توقيع SHA-1 أو MD5، اسم غير مطابق، إصدار TLS قديم أو تشفير ضعيف.
الأكثر أهمية في VoIP هو CERT_DEFAULT_VENDOR: شهادة المصنع لـ PBX أو هاتف، التي يُشحن مفتاحها الخاص داخل صورة البرنامج الثابت. أي شخص يقوم بتنزيل تلك الصورة يمكنه الجلوس في منتصف SIP-TLS.
مع -tlsversions يحاول أيضًا TLS 1.0 و1.1 و1.2 و1.3 واحدًا تلو الآخر، مما يكلف مصافحة واحدة لكل إصدار ويُجرى مرة واحدة لكل مضيف ومنفذ:```
sippts scan -i 192.168.0.1 -r 5061 -p tls -tlsversions
تعود كل نسخة بصيغة `accepted` أو `refused` أو `untested`. الأخيرة تعني أن *هذا* OpenSSL لا يستطيع تقديم تلك النسخة، وهذا ليس نفس الأمر الذي يعنيه كون الخادم قد أوقفها، والفرق مهم عندما تنتقل النتيجة إلى تقرير.
هناك حدّان صادقان، تطبعهما الأداة بدلاً من إخفائهما:
* **لا يمكن اختبار SSLv2 و SSLv3.** فـ OpenSSL 3 مبنيّ بدونهما، لذا لا يستطيع sippts تقديمهما. ويُبلَّغ عنهما بصيغة `untested`، وليس `disabled` أبداً.
* شهادة موقّعة ذاتياً على SIP trunk داخلي ليست نتيجة بحد ذاتها. احكم عليها في سياقها.
الجدول الرئيسي، وملف `-o`، و CSV الخاص بـ `-ocsv` لا تتغير. أما JSON الخاص بـ `-oj` فيكتسب `tls` و `tls_findings`.
## اختطاف المكالمات ##
يشير `Replaces` (RFC 3891) إلى مكالمة قائمة بالفعل، عبر Call-ID الخاص بها ووسميها (tags). و`sippts dump` و `sippts sniff` هما ما يمنحك تلك القيم الثلاث من التقاط؛ ومن هناك:```
sippts send -i 192.168.0.1 -m REFER -refer-to 200 -replaces "CALLID;to-tag=X;from-tag=Y"
sippts send -i 192.168.0.1 -m INVITE -replaces "CALLID;to-tag=X;from-tag=Y"
في REFER تكون هذه عملية تحويل مصحوبة، وفي INVITE تتولى المكالمة. كما يقبل sippts invite الخيار -replaces، لإضافته إلى REFER الذي يرسله -t بالفعل، بحيث يحدث التحويل داخل مكالمة أنشأها للتو.
ما الذي يصرّح الخادم بدعمه
يحاول enumerate طرق SIP الـ 14 واحدة تلو الأخرى ويميّز بينها عبر الإجابة، لكن الخادم يصرّح أيضًا بما يقبله في ترويسات Allow وSupported وAllow-Events. تُقرأ هذه أيضًا وتُطبع في جدول ثانٍ، يبرز كذلك التناقضين الجديرين بالنظر: طريقة معلن عنها في Allow ثم تجيب بـ 405، وطريقة تجيب بشكل سليم دون أن يكون معلنًا عنها إطلاقًا. أما Allow-Events فهو الذي يحدد ما إذا كان يمكن الاشتراك في dialog أو message-summary أو presence، وهو ما يتوجه إليه send -m subscribe بعد ذلك.```
sippts enumerate -i 192.168.0.1
يحافظ الجدول الأول على الشكل الذي كان عليه دائمًا، وكذلك ملف CSV الخاص بـ
`-ocsv`. تُضاف البيانات الجديدة فقط إلى JSON الخاص بـ `-oj`، تحت
`capabilities`.
## الثغرات الأمنية المعروفة ##
مع `-cve`، تقارن وحدة `scan` ما تُحدده من بصمات مقابل قائمة من
الثغرات الأمنية المعروفة التي تنتقل داخل الحزمة
(`src/sippts/data/cve.csv`). تحتوي على حوالي 1400 ثغرة من 54 بائعًا، مبنية
من [NVD of NIST](https://nvd.nist.gov)، ونطاقات الإصدارات تأتي من
CPEs الخاصة بكل ثغرة:```bash
sippts scan -i 192.168.0.0/24 -fp -cve
تُدرج النتائج التي يقع إصدارها فعلاً ضمن النطاق المتأثر أولاً. وتُعرض البقية خلفها كاحتمالات فقط، لأنه في أداة فحص، ثغرة CVE موجودة وغير مُبلَّغ عنها أسوأ من ثغرة مُبلَّغ عنها بالزيادة. الصف الذي لا يحتوي على نطاق يعني أن كل إصدارات ذلك الجهاز متأثرة.
هناك حدّان يجدر معرفتهما. يعتمد الكشف على User-Agent، لذا فإن خادمًا
يخفيه لا يمكن فحصه مقابل أي شيء. وبعض المنتجات تُرقَّم بحروف (A وB وC
في Asterisk Business Edition، أو beta_5)، وهو ما لا تستطيع أي مقارنة
رقمية ترتيبه: تُطابَق هذه نصيًا فقط، وتظهر دائمًا كاحتمالات لا كتأكيدات.
لتحديث القائمة:```bash sippts -up
الذي يقوم بتنزيله من github مع بقية الوحدات.
### الخطورة ###
كل CVE يحمل CVSS الخاص به، ملوّنًا حسب الخطورة: البنفسجي للحرجة، والأحمر
للعالية، والأصفر للمتوسطة، والسماوي للمنخفضة. الأسوأ منها مُدرجة أولاً.
لا يمتلك NVD إصدار CVSS v3 لكل CVE: ما يقرب من ثلث القائمة
أقدم من 2016 ويمتلك v2 فقط، وبالنسبة لـ Asterisk فإن معظمها كذلك. عندما
يوجد v2 فقط يتم استخدامه و**يُوسم بـ `v2`**، لأن المقياسين
غير متكافئين ولا يمتلك v2 مستوى CRITICAL: CVE-2017-16563 هو 6.0 MEDIUM في
v2 و 8.0 HIGH في v3.
لا يمكن لـ sippts الأقدم من 4.2.1 قراءة هذا العمود. حدّث باستخدام `sippts -up`.
### إعادة بناء القائمة (المشرفون) ###
`tools/cve_update.py` يعيد بناء `cve.csv` من NVD. ليس شيئًا
يشغّله مستخدم sippts: الفكرة هي إعادة توليده، والنظر إلى الفرق، وإيداعه،
وترك الجميع الآخرين يحصلون عليه عبر `sippts -up`. هذا يُبقي مفتاح API و
حدود المعدل الخاصة بـ NVD بعيدًا عن وسط عملية التدقيق.```bash
./tools/cve_update.py --dry-run # what would change, writing nothing
./tools/cve_update.py # rebuild it
./tools/cve_update.py --vendor yealink # only one vendor
NVD_API_KEY=xxxx ./tools/cve_update.py # ten times faster
بدون مفتاح API، يسمح NVD بـ 5 طلبات كل 30 ثانية، ويستغرق التشغيل الكامل حوالي خمس عشرة دقيقة. وهي مجانية على nvd.nist.gov.
تتحكم قائمتان في أعلى السكربت في ما يتم البحث عنه. تحتفظ VENDORS بالموردين، ويمكن أن يكون كل واحد منهم المورد بالكامل، أو قائمة منتجات، أو مُرشَّحًا حسب الوسم. تحتفظ TAGS_VOIP بالوسوم (voip، sip، ip_phone، ata، pbx، ip_office، mivoice...). يهم المُرشِّح بالنسبة للموردين الذين يصنعون أيضًا أجهزة التوجيه والجدران النارية: فطلب كل منتجات Zyxel من NVD يجلب 3223 صفًا من أجهزة WiFi وDSL التي لن يراها sippts أبدًا عبر SIP.
أنظمة التشغيل
تم اختبار Sippts على:
- Linux
- MacOS
المتطلبات
- Python 3
- التبعيات المدرجة في requirements.txt، والتي يتم تثبيتها تلقائيًا بواسطة pip
- بالنسبة إلى sniff وdump وpcapdump: tshark (جزء من Wireshark)
- لاستخراج الصوت باستخدام pcapdump: sox وffmpeg
التثبيت
التثبيت عبر git: ```bash git clone https://github.com/Pepelux/sippts.git
```bash
cd sippts
pip3 install .