Mr.SIP is a tool developed to audit and simulate SIP-based attacks. Originally it was developed to be used in academic work to help developing novel SIP-based DDoS attacks and defense approaches and then as an idea to convert it to a fully functional SIP-based penetration testing tool, it has been redeveloped into the current version.
It was used in an academic journal paper titled “Novel SIP-based DDoS Attacks and Effective Defense Strategies” published in Computers & Security 63 (2016) 29-44 by Elsevier, Science Direct http://sciencedirect.com/science/article/pii/S0167404816300980.
In the current state, Mr.SIP comprises four sub-modules named as SIP-NES, SIP-ENUM, SIP-DAS and SIP-ASP. Since it provides a modular structure to developers, more modules will continue be added by the authors and it is open to be contributed by the open-source developer community.
+ SIP-NES needs to enter the IP range or IP subnet information. It sends SIP OPTIONS message to each IP addresses in the subnet and according to the responses outputs the potential SIP clients and servers on that subnet.
+ IP-ENUM outputs which SIP users are valid according to the responses in that network by sending REGISTER messages to each client IP addresses on the output of SIP-NES.
+ SIP-DAS (DoS Attack Simulator) is a module developed to simulate SIP-based DoS attacks. It comprises four components: spoofed IP address generator, SIP message generator, message sender and scenario player. It needs outputs of SIP-NES (Network Scanner) and SIP-ENUM (Enumerator) along with some pre-defined files.
+ SIP-DAS basically generates legitimate SIP INVITE message and sends it to the target SIP component via TCP or UDP. It has three different options for spoofed IP address generation, i.e., manual, random and by selecting spoofed IP address from subnet. IP addresses could be specified manually or generated randomly. Furthermore, in order to bypass URPF filtering, which is used to block IP addresses that do not belong to the subnet from passing onto the Internet, we designed a spoofed IP address generation module. Spoofed IP generation module calculated the subnet used and randomly generated spoofed IP addresses that appeared to come from within the subnet.
In order to bypass automatic message generation detection (anomaly detection) systems, random “INVITE” messages are generated that contained no patterns within the messages. Each generated “INVITE” message is grammatically compatible with SIP RFCs and acceptable to all of the SIP components.
Install Dependencies and Usage:
yum install figlet toilet ngrep python-scapy
apt-get install figlet toilet ngrep python-scapy
pip install netifaces ipaddress
git clone https://github.com/meliht/Mr.SIP && cd Mr.SIP
Tips for getting SIP trace:
ngrep -W byline -d eth0 port 5060
ngrep -W byline -d eth0 port 5060 -O capture_file
ngrep -W byline -d eth0 INVITE
tcpdump -i eth0 -n -s 0 port 5060
tcpdump -i eth0 -n -s 0 port 5060 -vvv -w /home/capture_file_name
tcpdump -nqt -s 0 -A -i en0 port 5060
sudo ./mr.sip.py -i -ds -dm <sip_method_name> -c <number_of_packets> -di <server_ip> -dp <server_port> -r -to <to_user_file> -fu <from_user_file> -ua <user_agent_file> -su <sp_user_file>
sudo ./mr.sip.py -i -ds -dm <sip_method_name> -c <number_of_packets> -di <server_ip> -dp <server_port> -t -to <to_user_file> -fu <from_user_file> -ua <user_agent_file> -su <sp_user_file>