Pentesting VoIP

Reading time: 29 minutes

tip

AWS рд╣реИрдХрд┐рдВрдЧ рд╕реАрдЦреЗрдВ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ:HackTricks Training AWS Red Team Expert (ARTE)
GCP рд╣реИрдХрд┐рдВрдЧ рд╕реАрдЦреЗрдВ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ

VoIP рдореВрд▓ рдЬрд╛рдирдХрд╛рд░реА

VoIP рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрд╣ рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ:

Basic VoIP Protocols

рдореВрд▓ рд╕рдВрджреЗрд╢

Request name Description RFC references ------------------------------------------------------------------------------------------------------ REGISTER Register a SIP user. RFC 3261 INVITE Initiate a dialog for establishing a call. RFC 3261 ACK Confirm that an entity has received. RFC 3261 BYE Signal termination of a dialog and end a call. RFC 3261 CANCEL Cancel any pending request. RFC 3261 UPDATE Modify the state of a session without changing the state of the dialog. RFC 3311 REFER Ask recipient to issue a request for the purpose of call transfer. RFC 3515 PRACK Provisional acknowledgement. RFC 3262 SUBSCRIBE Initiates a subscription for notification of events from a notifier. RFC 6665 NOTIFY Inform a subscriber of notifications of a new event. RFC 6665 PUBLISH Publish an event to a notification server. RFC 3903 MESSAGE Deliver a text message. Used in instant messaging applications. RFC 3428 INFO Send mid-session information that does not modify the session state. RFC 6086 OPTIONS Query the capabilities of an endpoint RFC 3261

Response Codes

1xxтАФProvisional Responses

100 Trying 180 Ringing 181 Call is Being Forwarded 182 Queued 183 Session Progress 199 Early Dialog Terminated

2xxтАФрд╕рдлрд▓ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдБ

200 OK 202 Accepted 204 No Notification

3xxтАФрдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдБ

300 Multiple Choices 301 Moved Permanently 302 Moved Temporarily 305 Use Proxy 380 Alternative Service

4xxтАФрдХреНрд▓рд╛рдЗрдВрдЯ рд╡рд┐рдлрд▓рддрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдБ

400 Bad Request 401 Unauthorized 402 Payment Required 403 Forbidden 404 Not Found 405 Method Not Allowed 406 Not Acceptable 407 Proxy Authentication Required 408 Request Timeout 409 Conflict 410 Gone 411 Length Required 412 Conditional Request Failed 413 Request Entity Too Large 414 Request-URI Too Long 415 Unsupported Media Type 416 Unsupported URI Scheme 417 Unknown Resource-Priority 420 Bad Extension 421 Extension Required 422 Session Interval Too Small 423 Interval Too Brief 424 Bad Location Information 425 Bad Alert Message 428 Use Identity Header 429 Provide Referrer Identity 430 Flow Failed 433 Anonymity Disallowed 436 Bad Identity-Info 437 Unsupported Certificate 438 Invalid Identity Header 439 First Hop Lacks Outbound Support 440 Max-Breadth Exceeded 469 Bad Info Package 470 Consent Needed 480 Temporarily Unavailable 481 Call/Transaction Does Not Exist 482 Loop Detected 483 Too Many Hops 484 Address Incomplete 485 Ambiguous 486 Busy Here 487 Request Terminated 488 Not Acceptable Here 489 Bad Event 491 Request Pending 493 Undecipherable 494 Security Agreement Required

5xxтАФрд╕рд░реНрд╡рд░ рд╡рд┐рдлрд▓рддрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдБ

500 Internal Server Error 501 Not Implemented 502 Bad Gateway 503 Service Unavailable 504 Server Time-out 505 Version Not Supported 513 Message Too Large 555 Push Notification Service Not Supported 580 Precondition Failure

6xxтАФрд╡реИрд╢реНрд╡рд┐рдХ рд╡рд┐рдлрд▓рддрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдБ

600 Busy Everywhere 603 Decline 604 Does Not Exist Anywhere 606 Not Acceptable 607 Unwanted 608 Rejected

VoIP Enumeration

Telephone Numbers

рдПрдХ рд░реЗрдб рдЯреАрдо рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкрд╣рд▓реЗ рдХрджрдореЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЙрдкрд▓рдмреНрдз рдлреЛрди рдирдВрдмрд░реЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдирд╛ рд╣реИ рддрд╛рдХрд┐ рдХрдВрдкрдиреА рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рдЗрд╕рдХреЗ рд▓рд┐рдП OSINT рдЯреВрд▓, Google Searches рдпрд╛ рд╡реЗрдм рдкреЗрдЬреЛрдВ рдХреЛ рд╕реНрдХреНрд░реИрдк рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдЯреЗрд▓реАрдлреЛрди рдирдВрдмрд░ рд╣реЛ рдЬрд╛рдПрдВ, рддреЛ рдЖрдк рдСрдкрд░реЗрдЯрд░ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдСрдирд▓рд╛рдЗрди рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

рдпрд╣ рдЬрд╛рдирдХрд░ рдХрд┐ рдХреНрдпрд╛ рдСрдкрд░реЗрдЯрд░ VoIP рд╕реЗрд╡рд╛рдПрдВ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЖрдк рдкрд╣рдЪрд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдХрдВрдкрдиреА VoIP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реА рд╣реИ... рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдХрдВрдкрдиреА рдиреЗ VoIP рд╕реЗрд╡рд╛рдПрдВ рдирд╣реАрдВ рд▓реА рд╣реИрдВ рд▓реЗрдХрд┐рди рдЕрдкрдиреЗ VoIP PBX рдХреЛ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдЯреЗрд▓реАрдлреЛрдиреА рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП PSTN рдХрд╛рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реА рд╣реИред

рдРрд╕реА рдЪреАрдЬреЗрдВ рдЬреИрд╕реЗ рд╕рдВрдЧреАрдд рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЙрддреНрддрд░ рдЖрдорддреМрд░ рдкрд░ рдпрд╣ рд╕рдВрдХреЗрдд рджреЗрддреА рд╣реИрдВ рдХрд┐ VoIP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

Google Dorks

bash
# Grandstream phones intitle:"Grandstream Device Configuration" Password intitle:"Grandstream Device Configuration" (intext:password & intext:"Grandstream Device Configuration" & intext:"Grandstream Networks" | inurl:cgi-bin) -.com|org # Cisco Callmanager inurl:"ccmuser/logon.asp" intitle:"Cisco CallManager User Options Log On" "Please enter your User ID and Password in the spaces provided below and click the Log On button" # Cisco phones inurl:"NetworkConfiguration" cisco # Linksys phones intitle:"Sipura SPA Configuration" # Snom phones intitle:"snom" intext:"Welcome to Your Phone!" inurl:line_login.htm # Polycom SoundPoint IP & phones intitle:"SoundPoint IP Configuration Utility - Registration" "Welcome to Polycom Web Configuration Utility" "Login as" "Password" intext: "Welcome to Polycom Web Configuration Utility" intitle:"Polycom - Configuration Utility" inurl:"coreConf.htm" intitle:"Polycom Login" inurl:"/login.html" intitle:"Polycom Login" -.com # Elastix intitle:"Elastix - Login page" intext:"Elastix is licensed under GPL" # FreePBX inurl:"maint/index.php?FreePBX" intitle: "FreePBX" intext:"FreePBX Admministration"

OSINT рдЬрд╛рдирдХрд╛рд░реА

рдХреЛрдИ рдЕрдиреНрдп OSINT рдЧрдгрдирд╛ рдЬреЛ VoIP рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреА рд╣реИ, рд╡рд╣ Red Team рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрдХ рд╣реЛрдЧреАред

рдиреЗрдЯрд╡рд░реНрдХ рдЧрдгрдирд╛

  • nmap UDP рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╕реНрдХреИрди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ, рд▓реЗрдХрд┐рди UDP рд╕реЗрд╡рд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдХрд╛рд░рдг, рдпрд╣ рдмрд╣реБрдд рдзреАрдорд╛ рд╣реИ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рд╕рдЯреАрдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ред
bash
sudo nmap --script=sip-methods -sU -p 5060 10.10.0.0/24
  • svmap SIPVicious рд╕реЗ (sudo apt install sipvicious): рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ SIP рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдЦреЛрдЬреЗрдЧрд╛ред
  • svmap рдХреЛ рдмреНрд▓реЙрдХ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ User-Agent friendly-scanner рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк /usr/share/sipvicious/sipvicious рд╕реЗ рдХреЛрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред
bash
# Use --fp to fingerprint the services svmap 10.10.0.0/24 -p 5060-5070 [--fp]
  • SIPPTS scan from sippts: SIPPTS рд╕реНрдХреИрди UDP, TCP рдпрд╛ TLS рдкрд░ SIP рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рддреЗрдЬрд╝ рд╕реНрдХреИрдирд░ рд╣реИред рдпрд╣ рдорд▓реНрдЯреАрдереНрд░реЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдмрдбрд╝реЗ рдиреЗрдЯрд╡рд░реНрдХ рд░реЗрдВрдЬ рдХреЛ рд╕реНрдХреИрди рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдкреЛрд░реНрдЯ рд░реЗрдВрдЬ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ, TCP рдФрд░ UDP рджреЛрдиреЛрдВ рдХреЛ рд╕реНрдХреИрди рдХрд░рдиреЗ, рдПрдХ рдЕрдиреНрдп рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ OPTIONS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛) рдФрд░ рдПрдХ рдЕрд▓рдЧ User-Agent (рдФрд░ рдЕрдзрд┐рдХ) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
bash
sippts scan -i 10.10.0.0/24 -p all -r 5060-5080 -th 200 -ua Cisco [-m REGISTER] [!] IP/Network: 10.10.0.0/24 [!] Port range: 5060-5080 [!] Protocol: UDP, TCP, TLS [!] Method to scan: REGISTER [!] Customized User-Agent: Cisco [!] Used threads: 200
  • metasploit:
auxiliary/scanner/sip/options_tcp normal No SIP Endpoint Scanner (TCP) auxiliary/scanner/sip/options normal No SIP Endpoint Scanner (UDP)

рдЕрддрд┐рд░рд┐рдХреНрдд рдиреЗрдЯрд╡рд░реНрдХ рдПрдиреНрдпреВрдорд░реЗрд╢рди

PBX рдЕрдиреНрдп рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рднреА рдЙрдЬрд╛рдЧрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреИрд╕реЗ:

  • 69/UDP (TFTP): рдлрд░реНрдорд╡реЗрдпрд░ рдЕрдкрдбреЗрдЯ
  • 80 (HTTP) / 443 (HTTPS): рд╡реЗрдм рд╕реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
  • 389 (LDAP): рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк
  • 3306 (MySQL): MySQL рдбреЗрдЯрд╛рдмреЗрд╕
  • 5038 (Manager): рдЕрдиреНрдп рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рд╕реЗ Asterisk рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
  • 5222 (XMPP): Jabber рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрджреЗрд╢
  • 5432 (PostgreSQL): PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕
  • рдФрд░ рдЕрдиреНрдп...

рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рдПрдиреНрдпреВрдорд░реЗрд╢рди

рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ PBX рдореЗрдВ рдХреМрди рд╕реА рд╡рд┐рдзрд┐рдпрд╛рдБ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ SIPPTS enumerate рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ sippts

bash
sippts enumerate -i 10.10.0.10

рд╕рд░реНрд╡рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг

рдпрд╣ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд╣рдо рдЙрди рд╣реЗрдбрд░ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВ рдЬреЛ рдПрдХ рд╕рд░реНрд╡рд░ рд╣рдореЗрдВ рд╡рд╛рдкрд╕ рднреЗрдЬрддрд╛ рд╣реИ, рдЬреЛ рд╕рдВрджреЗрд╢ рдХреЗ рдкреНрд░рдХрд╛рд░ рдФрд░ рд╣реЗрдбрд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╣рдо рднреЗрдЬрддреЗ рд╣реИрдВред sippts рд╕реЗ SIPPTS send рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдо рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдВрджреЗрд╢ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рднреА рд╣реЗрдбрд░ рдХреЛ рдореИрдирд┐рдкреБрд▓реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

bash
sippts send -i 10.10.0.10 -m INVITE -ua Grandstream -fu 200 -fn Bob -fd 11.0.0.1 -tu 201 -fn Alice -td 11.0.0.2 -header "Allow-Events: presence" -sdp

рдпрд╣ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИ рдпрджрд┐ рд╕рд░реНрд╡рд░ рд╡реЗрдмреНрд╕реЙрдХреЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред sippts рд╕реЗ SIPPTS wssend рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдо рд╡реНрдпрдХреНрддрд┐рдЧрдд WS рд╕рдВрджреЗрд╢ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред

bash
sippts wssend -i 10.10.0.10 -r 443 -path /ws

Extension Enumeration

PBX (Private Branch Exchange) рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ Extensions рдХрд╛ рдорддрд▓рдм рд╣реИ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдлреЛрди рд▓рд╛рдЗрдиреЛрдВ, рдЙрдкрдХрд░рдгреЛрдВ, рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрд╕рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрдВрддрд░рд┐рдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ред Extensions рдпрд╣ рд╕рдВрднрд╡ рдмрдирд╛рддреЗ рд╣реИрдВ рдХрд┐ рд╕рдВрдЧрдарди рдХреЗ рднреАрддрд░ рдХреЙрд▓ рдХреЛ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рд░реВрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рдмрд┐рдирд╛ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдпрд╛ рдЙрдкрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐рдЧрдд рдмрд╛рд╣рд░реА рдлреЛрди рдирдВрдмрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗред

  • svwar from SIPVicious (sudo apt install sipvicious): svwar рдПрдХ рдореБрдлреНрдд SIP PBX рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд▓рд╛рдЗрди рд╕реНрдХреИрдирд░ рд╣реИред рдпрд╣ рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╡рд╛рд░реНрдбрд╛рдпрд▓рд░реНрд╕ рдХреЗ рд╕рдорд╛рди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдПрдХ рд░реЗрдВрдЬ рдХреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рдиреЛрдВ рдпрд╛ рджрд┐рдП рдЧрдП рдПрдХреНрд╕рдЯреЗрдВрд╢рдиреЛрдВ рдХреА рд╕реВрдЪреА рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдХрд░ред
bash
svwar 10.10.0.10 -p5060 -e100-300 -m REGISTER
  • SIPPTS exten from sippts: SIPPTS exten рдПрдХ SIP рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рдкрд╣рдЪрд╛рди рдХрд░рддрд╛ рд╣реИред Sipexten рдмрдбрд╝реЗ рдиреЗрдЯрд╡рд░реНрдХ рдФрд░ рдкреЛрд░реНрдЯ рд░реЗрдВрдЬ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
bash
sippts exten -i 10.10.0.10 -r 5060 -e 100-200
  • metasploit: рдЖрдк metasploit рдХреЗ рд╕рд╛рде extensions/usernames рдХреА рднреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
auxiliary/scanner/sip/enumerator_tcp normal No SIP Username Enumerator (TCP) auxiliary/scanner/sip/enumerator normal No SIP Username Enumerator (UDP)
  • enumiax (apt install enumiax): enumIAX рдПрдХ Inter Asterisk Exchange рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдпреВрдЬрд░рдиреЗрдо рдмреНрд░реВрдЯ-рдлреЛрд░реНрд╕ рдПрдиреНрдпреВрдорд░реЗрдЯрд░ рд╣реИред enumIAX рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ; рдЕрдиреБрдХреНрд░рдорд┐рдХ рдпреВрдЬрд░рдиреЗрдо рдЕрдиреБрдорд╛рди рдпрд╛ рд╢рдмреНрджрдХреЛрд╢ рд╣рдорд▓рд╛ред
bash
enumiax -d /usr/share/wordlists/metasploit/unix_users.txt 10.10.0.10 # Use dictionary enumiax -v -m3 -M3 10.10.0.10

VoIP рд╣рдорд▓реЗ

рдкрд╛рд╕рд╡рд░реНрдб рдмреНрд░реВрдЯ-рдлреЛрд░реНрд╕ - рдСрдирд▓рд╛рдЗрди

PBX рдФрд░ рдХреБрдЫ extensions/usernames рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ Red Team REGISTER рд╡рд┐рдзрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ extension рдкрд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреА рд╣реИ, рд╕рд╛рдорд╛рдиреНрдп рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЛ рдмреНрд░реВрдЯ рдлреЛрд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

caution

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдПрдХ username extension рдХреЗ рд╕рдорд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреНрд░рдерд╛ PBX рдкреНрд░рдгрд╛рд▓реА, рдЗрд╕рдХреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди, рдФрд░ рд╕рдВрдЧрдарди рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИ...

рдпрджрд┐ username extension рдХреЗ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рдмреНрд░реВрдЯ-рдлреЛрд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП username рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реЛрдЧрд╛ред

  • svcrack SIPVicious рд╕реЗ (sudo apt install sipvicious): SVCrack рдЖрдкрдХреЛ PBX рдкрд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ username/extension рдХреЗ рд▓рд┐рдП рдкрд╛рд╕рд╡рд░реНрдб рдХреНрд░реИрдХ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
bash
svcrack -u100 -d dictionary.txt udp://10.0.0.1:5080 #Crack known username svcrack -u100 -r1-9999 -z4 10.0.0.1 #Check username in extensions
  • SIPPTS rcrack from sippts: SIPPTS rcrack рдПрдХ рджреВрд░рд╕реНрде рдкрд╛рд╕рд╡рд░реНрдб рдХреНрд░реИрдХрд░ рд╣реИ рдЬреЛ SIP рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╣реИред Rcrack рд╡рд┐рднрд┐рдиреНрди IPs рдФрд░ рдкреЛрд░реНрдЯ рд░реЗрдВрдЬ рдореЗрдВ рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕рд╡рд░реНрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддрд╛ рд╣реИред
bash
sippts rcrack -i 10.10.0.10 -e 100,101,103-105 -w wordlist/rockyou.txt

VoIP Sniffing

рдпрджрд┐ рдЖрдк Open Wifi network рдХреЗ рдЕрдВрджрд░ VoIP рдЙрдкрдХрд░рдг рдкрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╕реНрдирд┐рдл рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдЖрдк рдПрдХ рдЕрдзрд┐рдХ рдмрдВрдж рдиреЗрдЯрд╡рд░реНрдХ (Ethernet рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреБрдбрд╝реЗ рдпрд╛ рд╕реБрд░рдХреНрд╖рд┐рдд Wifi) рдХреЗ рдЕрдВрджрд░ рд╣реИрдВ, рддреЛ рдЖрдк PBX рдФрд░ рдЧреЗрдЯрд╡реЗ рдХреЗ рдмреАрдЪ MitM рд╣рдорд▓реЗ рдЬреИрд╕реЗ ARPspoofing рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╕реНрдирд┐рдл рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

рдиреЗрдЯрд╡рд░реНрдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдмреАрдЪ, рдЖрдк рдЙрдкрдХрд░рдг рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЗрдм рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо, IP рдкрддреЗ, рдпрд╣рд╛рдВ рддрдХ рдХрд┐ рд╣реИрд╢ рдХрд┐рдП рдЧрдП рдкрд╛рд╕рд╡рд░реНрдб рдФрд░ RTP рдкреИрдХреЗрдЯ рднреА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдмрд╛рддрдЪреАрдд рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рднреА рдмрд╣реБрдд рдХреБрдЫред

рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк Wireshark, tcpdump рдЬреИрд╕реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ... рд▓реЗрдХрд┐рди VoIP рдмрд╛рддрдЪреАрдд рдХреЛ рд╕реНрдирд┐рдл рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдмрдирд╛рдП рдЧрдП рдЙрдкрдХрд░рдг ucsniff рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

caution

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ SIP рд╕рдВрдЪрд╛рд░ рдореЗрдВ TLS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддреЛ рдЖрдк SIP рд╕рдВрдЪрд╛рд░ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рджреЗрдЦ рдкрд╛рдПрдВрдЧреЗред
рдпрджрд┐ SRTP рдФрд░ ZRTP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ RTP рдкреИрдХреЗрдЯ рд╕реНрдкрд╖реНрдЯ рдкрд╛рда рдореЗрдВ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред

SIP рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ (рдкрд╛рд╕рд╡рд░реНрдб рдмреНрд░реВрдЯ-рдлреЛрд░реНрд╕ - рдСрдлрд╝рд▓рд╛рдЗрди)

SIP REGISTER рд╕рдВрдЪрд╛рд░ рдХреЛ рдмреЗрд╣рддрд░ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЖрдк рдЬрд╛рди рд╕рдХреЗрдВ рдХрд┐ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХреИрд╕реЗ рднреЗрдЬреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред

  • sipdump рдФрд░ sipcrack, sipcrack рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ (apt-get install sipcrack): рдпреЗ рдЙрдкрдХрд░рдг pcap рд╕реЗ рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЛ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдмреНрд░реВрдЯрдлреЛрд░реНрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
bash
sipdump -p net-capture.pcap sip-creds.txt sipcrack sip-creds.txt -w dict.txt
  • SIPPTS dump from sippts: SIPPTS dump рдПрдХ pcap рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдирд┐рдХрд╛рд▓ рд╕рдХрддрд╛ рд╣реИред
bash
sippts dump -f capture.pcap -o data.txt
  • SIPPTS dcrack from sippts: SIPPTS dcrack рдПрдХ рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ SIPPTS рдбрдВрдк рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЛ рдХреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред
bash
sippts dcrack -f data.txt -w wordlist/rockyou.txt
  • SIPPTS tshark from sippts: SIPPTS tshark рдПрдХ PCAP рдлрд╝рд╛рдЗрд▓ рд╕реЗ SIP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдбреЗрдЯрд╛ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИред
bash
sippts tshark -f capture.pcap [-filter auth]

DTMF рдХреЛрдб

рдХреЗрд╡рд▓ SIP рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рд╣реА рдиреЗрдЯрд╡рд░реНрдХ рдЯреНрд░реИрдлрд┐рдХ рдореЗрдВ рдирд╣реАрдВ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ, рдмрд▓реНрдХрд┐ DTMF рдХреЛрдб рднреА рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╡реЙрдЗрд╕рдореЗрд▓ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдЗрди рдХреЛрдбреНрд╕ рдХреЛ INFO SIP рд╕рдВрджреЗрд╢реЛрдВ рдореЗрдВ, рдСрдбрд┐рдпреЛ рдореЗрдВ рдпрд╛ RTP рдкреИрдХреЗрдЯреНрд╕ рдХреЗ рдЕрдВрджрд░ рднреЗрдЬрдирд╛ рд╕рдВрднрд╡ рд╣реИред рдпрджрд┐ рдХреЛрдб RTP рдкреИрдХреЗрдЯреНрд╕ рдХреЗ рдЕрдВрджрд░ рд╣реИрдВ, рддреЛ рдЖрдк рдмрд╛рддрдЪреАрдд рдХреЗ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдХрд╛рдЯ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреВрд▓ multimo рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

bash
multimon -a DTMF -t wac pin.wav

Free Calls / Asterisks Connections Misconfigurations

Asterisk рдореЗрдВ рдПрдХ рдХрдиреЗрдХреНрд╢рди рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ IP рдкрддреЗ рд╕реЗ рдпрд╛ рдХрд┐рд╕реА рднреА IP рдкрддреЗ рд╕реЗ рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рд╕рдВрднрд╡ рд╣реИ:

host=10.10.10.10 host=dynamic

рдпрджрд┐ рдПрдХ IP рдкрддрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╣реЛрд╕реНрдЯ рд╣рд░ рдХреБрдЫ рд╕рдордп рдореЗрдВ REGISTER рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА (REGISTER рдкреИрдХреЗрдЯ рдореЗрдВ рдЬреАрд╡рдирдХрд╛рд▓ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЖрдорддреМрд░ рдкрд░ 30 рдорд┐рдирдЯ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЕрдиреНрдп рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ рдлреЛрди рдХреЛ рд╣рд░ 30 рдорд┐рдирдЯ рдореЗрдВ REGISTER рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА)ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП VoIP рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рдЦреБрд▓реЗ рдкреЛрд░реНрдЯ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  • type=user: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред
  • type=friend: рдкреАрдпрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрд▓ рдХрд░рдирд╛ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ (рд╡рд┐рд╕реНрддрд╛рд░рдг рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)
  • type=peer: рдкреАрдпрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрд▓ рднреЗрдЬрдирд╛ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ (SIP-trunks)

рдпрд╣ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдЪрд░ рдХреЗ рд╕рд╛рде рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИ:

  • insecure=port: IP рджреНрд╡рд╛рд░рд╛ рдорд╛рдиреНрдп рдкреАрдпрд░ рдХрдиреЗрдХреНрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
  • insecure=invite: INVITE рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ
  • insecure=port,invite: рджреЛрдиреЛрдВ

warning

рдЬрдм type=friend рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ host рдЪрд░ рдХрд╛ рдореВрд▓реНрдп рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдПрдХ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ SIP-trunk рдХреЛ рдЧрд▓рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдХреЛрдИ рднреА рдЗрд╕рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХреЗрдЧрд╛ред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрдордЬреЛрд░ рд╣реЛрдЧрд╛:
host=10.10.10.10
insecure=port,invite
type=friend

рдореБрдлреНрдд рдХреЙрд▓ / рдПрд╕реНрдЯреЗрд░рд┐рд╕реНрдХ рд╕рдВрджрд░реНрдн рдЧрд▓рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди

Asterisk рдореЗрдВ рдПрдХ рд╕рдВрджрд░реНрдн рдПрдХ рдирд╛рдорд┐рдд рдХрдВрдЯреЗрдирд░ рдпрд╛ рдбрд╛рдпрд▓ рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдХ рдЕрдиреБрднрд╛рдЧ рд╣реИ рдЬреЛ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рд╕реНрддрд╛рд░, рдХреНрд░рд┐рдпрд╛рдПрдБ рдФрд░ рдирд┐рдпрдореЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рд╕рдореВрд╣рд┐рдд рдХрд░рддрд╛ рд╣реИред рдбрд╛рдпрд▓ рдпреЛрдЬрдирд╛ Asterisk рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдореБрдЦреНрдп рдШрдЯрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реА рдФрд░ рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХреЙрд▓ рдХреЛ рд╕рдВрднрд╛рд▓рд╛ рдФрд░ рд░реВрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕рдВрджрд░реНрднреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдбрд╛рдпрд▓ рдпреЛрдЬрдирд╛ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ, рдкрд╣реБрдВрдЪ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдФрд░ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╡рд┐рднрд┐рдиреНрди рднрд╛рдЧреЛрдВ рдХреЗ рдмреАрдЪ рд╡рд┐рднрд╛рдЬрди рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрджрд░реНрдн рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЖрдорддреМрд░ рдкрд░ extensions.conf рдлрд╝рд╛рдЗрд▓ рдореЗрдВред рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рд╡рд░реНрдЧрд╛рдХрд╛рд░ рдмреНрд░реИрдХреЗрдЯ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рдВрджрд░реНрдн рдХрд╛ рдирд╛рдо рдЙрдирдХреЗ рднреАрддрд░ рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

bash
csharpCopy code[my_context]

рд╕рдВрджрд░реНрдн рдХреЗ рднреАрддрд░, рдЖрдк рдПрдХреНрд╕рдЯреЗрдВрд╢рди (рдбрд╛рдпрд▓ рдХрд┐рдП рдЧрдП рдирдВрдмрд░реЛрдВ рдХреЗ рдкреИрдЯрд░реНрди) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреНрд░рд┐рдпрд╛рдУрдВ рдпрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдпреЗ рдХреНрд░рд┐рдпрд╛рдПрдБ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИрдВ рдХрд┐ рдХреЙрд▓ рдХреЛ рдХреИрд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

scss
[my_context] exten => 100,1,Answer() exten => 100,n,Playback(welcome) exten => 100,n,Hangup()

рдпрд╣ рдЙрджрд╛рд╣рд░рдг "my_context" рдирд╛рдордХ рдПрдХ рд╕рд░рд▓ рд╕рдВрджрд░реНрдн рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ "100" рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╣реИред рдЬрдм рдХреЛрдИ 100 рдбрд╛рдпрд▓ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдХреЙрд▓ рдХрд╛ рдЙрддреНрддрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдПрдХ рд╕реНрд╡рд╛рдЧрдд рд╕рдВрджреЗрд╢ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдлрд┐рд░ рдХреЙрд▓ рд╕рдорд╛рдкреНрдд рдХрд░ рджреА рдЬрд╛рдПрдЧреАред

рдпрд╣ рдПрдХ рдФрд░ рд╕рдВрджрд░реНрдн рд╣реИ рдЬреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдирдВрдмрд░ рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:

scss
[external] exten => _X.,1,Dial(SIP/trunk/${EXTEN})

рдпрджрд┐ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рдВрджрд░реНрдн рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ:

[default] include => my_context include => external

warning

рдХреЛрдИ рднреА рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рдЕрдиреНрдп рдирдВрдмрд░ рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХреЗрдЧрд╛ (рдФрд░ рд╕рд░реНрд╡рд░ рдХрд╛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдХрд░реЗрдЧрд╛)ред

caution

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ sip.conf рдлрд╝рд╛рдЗрд▓ рдореЗрдВ allowguest=true рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдХреЛрдИ рднреА рд╣рдорд▓рд╛рд╡рд░ рдмрд┐рдирд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдирдВрдмрд░ рдкрд░ рдХреЙрд▓ рдХрд░ рд╕рдХреЗрдЧрд╛ред

  • SIPPTS invite from sippts: SIPPTS invite рдпрд╣ рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ PBX рд╕рд░реНрд╡рд░ рд╣рдореЗрдВ рдмрд┐рдирд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдпрджрд┐ SIP рд╕рд░реНрд╡рд░ рдХреА рдЧрд▓рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИ, рддреЛ рдпрд╣ рд╣рдореЗрдВ рдмрд╛рд╣рд░реА рдирдВрдмрд░реЛрдВ рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдпрд╣ рд╣рдореЗрдВ рдХреЙрд▓ рдХреЛ рджреВрд╕рд░реЗ рдмрд╛рд╣рд░реА рдирдВрдмрд░ рдкрд░ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рдиреЗ рдХреА рднреА рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЗ Asterisk рд╕рд░реНрд╡рд░ рдХреА рдЦрд░рд╛рдм рд╕рдВрджрд░реНрдн рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИ, рддреЛ рдЖрдк рдмрд┐рдирд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ INVITE рдЕрдиреБрд░реЛрдз рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛/рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рдЬрд╛рдиреЗ рдХреЙрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

bash
# Trying to make a call to the number 555555555 (without auth) with source number 200. sippts invite -i 10.10.0.10 -fu 200 -tu 555555555 -v # Trying to make a call to the number 555555555 (without auth) and transfer it to number 444444444. sippts invite -i 10.10.0.10 -tu 555555555 -t 444444444

рдореБрдлреНрдд рдХреЙрд▓ / рдЧрд▓рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ IVRS

IVRS рдХрд╛ рдорддрд▓рдм рд╣реИ рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рд╡реЙрдпрд╕ рд░рд┐рд╕реНрдкрд╛рдВрд╕ рд╕рд┐рд╕реНрдЯрдо, рдПрдХ рдЯреЗрд▓реАрдлреЛрдиреА рддрдХрдиреАрдХ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЖрд╡рд╛рдЬрд╝ рдпрд╛ рдЯрдЪ-рдЯреЛрди рдЗрдирдкреБрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдХрдВрдкреНрдпреВрдЯрд░реАрдХреГрдд рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред IVRS рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХреЙрд▓ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛рдУрдВ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рдирд╛, рдХреЙрд▓ рд░реВрдЯ рдХрд░рдирд╛, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХреИрдкреНрдЪрд░ рдХрд░рдирд╛ред

VoIP рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ IVRS рдЖрдорддреМрд░ рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реЗ рдорд┐рд▓рдХрд░ рдмрдирд╛ рд╣реЛрддрд╛ рд╣реИ:

  1. рд╡реЙрдпрд╕ рдкреНрд░реЙрдореНрдкреНрдЯ: рдкреВрд░реНрд╡-рд░рд┐рдХреЙрд░реНрдбреЗрдб рдСрдбрд┐рдпреЛ рд╕рдВрджреЗрд╢ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ IVR рдореЗрдиреВ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдФрд░ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
  2. DTMF (рдбреБрдЕрд▓-рдЯреЛрди рдорд▓реНрдЯреА-рдлреНрд░реАрдХреНрд╡реЗрдВрд╕реА) рд╕рд┐рдЧреНрдирд▓рд┐рдВрдЧ: рдлреЛрди рдкрд░ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рджрдмрд╛рдХрд░ рдЙрддреНрдкрдиреНрди рдЯрдЪ-рдЯреЛрди рдЗрдирдкреБрдЯ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ IVR рдореЗрдиреВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдФрд░ рдЗрдирдкреБрдЯ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  3. рдХреЙрд▓ рд░реВрдЯрд┐рдВрдЧ: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреЙрд▓ рдХреЛ рдЙрдЪрд┐рдд рдЧрдВрддрд╡реНрдп, рдЬреИрд╕реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рднрд╛рдЧреЛрдВ, рдПрдЬреЗрдВрдЯреЛрдВ, рдпрд╛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдкрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдирд╛ред
  4. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХреИрдкреНрдЪрд░: рдХреЙрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХрд░рдирд╛, рдЬреИрд╕реЗ рдЦрд╛рддрд╛ рдирдВрдмрд░, рдХреЗрд╕ рдЖрдИрдбреА, рдпрд╛ рдХреЛрдИ рдЕрдиреНрдп рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдбреЗрдЯрд╛ред
  5. рдмрд╛рд╣рд░реА рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг: IVR рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдпрд╛ рдЕрдиреНрдп рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рддрд╛рдХрд┐ рдЬрд╛рдирдХрд╛рд░реА рддрдХ рдкрд╣реБрдБрдЪ рдпрд╛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рдХреНрд░рд┐рдпрд╛рдПрдБ рдХреА рдЬрд╛ рд╕рдХреЗрдВ, рдпрд╛ рдШрдЯрдирд╛рдПрдБ рдЯреНрд░рд┐рдЧрд░ рдХреА рдЬрд╛ рд╕рдХреЗрдВред

рдПрдХ Asterisk VoIP рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ, рдЖрдк рдбрд╛рдпрд▓ рдкреНрд▓рд╛рди (extensions.conf рдлрд╝рд╛рдЗрд▓) рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдЬреИрд╕реЗ Background(), Playback(), Read(), рдФрд░ рдЕрдзрд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ IVR рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЖрдкрдХреЛ рд╡реЙрдпрд╕ рдкреНрд░реЙрдореНрдкреНрдЯ рдЦреЗрд▓рдиреЗ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХреИрдкреНрдЪрд░ рдХрд░рдиреЗ, рдФрд░ рдХреЙрд▓ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВред

рдХрдордЬреЛрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрджрд╛рд╣рд░рдг

scss
exten => 0,100,Read(numbers,the_call,,,,5) exten => 0,101,GotoIf("$[${numbers}"="1"]?200) exten => 0,102,GotoIf("$[${numbers}"="2"]?300) exten => 0,103,GotoIf("$[${numbers}"=""]?100) exten => 0,104,Dial(LOCAL/${numbers})

рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ 1 рджрдмрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдПрдХ рд╡рд┐рднрд╛рдЧ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, 2 рджрдмрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░реЗ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╛ рдкреВрд░реНрдг рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдпрджрд┐ рд╡рд╣ рдЗрд╕реЗ рдЬрд╛рдирддрд╛ рд╣реИред
рдХрдордЬреЛрд░реА рдпрд╣ рд╣реИ рдХрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рд▓рдВрдмрд╛рдИ рдХреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ 5 рд╕реЗрдХрдВрдб рдХрд╛ рдЯрд╛рдЗрдордЖрдЙрдЯ рдкреВрд░рд╛ рдирдВрдмрд░ рджрд░реНрдЬ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЗрдВрдЬреЗрдХреНрд╢рди

рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП:

scss
exten => _X.,1,Dial(SIP/${EXTEN})

рдЬрд╣рд╛рдБ ${EXTEN} рд╡рд╣ extension рд╣реИ рдЬрд┐рд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрдм ext 101 рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рддреЛ рдпрд╣ рд╣реЛрдЧрд╛:

scss
exten => 101,1,Dial(SIP/101)

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐ ${EXTEN} рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдФрд░ рдЕрдзрд┐рдХ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рдЬреИрд╕реЗ рдкреБрд░рд╛рдиреЗ Asterisk рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ), рддреЛ рдПрдХ рд╣рдорд▓рд╛рд╡рд░ 101&SIP123123123 рдХреЛ рдлреЛрди рдирдВрдмрд░ 123123123 рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреЗрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реЛрдЧрд╛:

scss
exten => 101&SIP123123123,1,Dial(SIP/101&SIP123123123)

рдЗрд╕рд▓рд┐рдП, 101 рдФрд░ 123123123 рдкрд░ рдХреЙрд▓ рднреЗрдЬреА рдЬрд╛рдПрдЧреА рдФрд░ рдХреЗрд╡рд▓ рдкрд╣рд▓рд╛ рдХреЙрд▓ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдЧрд╛... рд▓реЗрдХрд┐рди рдпрджрд┐ рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдРрд╕реЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рднреА рдорд┐рд▓рд╛рди рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╡рд╣ рдХреЗрд╡рд▓ рдЗрдЪреНрдЫрд┐рдд рдирдВрдмрд░ рдкрд░ рдХреЙрд▓ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

SIPDigestLeak рднреЗрджреНрдпрддрд╛

SIP Digest Leak рдПрдХ рднреЗрджреНрдпрддрд╛ рд╣реИ рдЬреЛ рдХрдИ SIP рдлреЛрди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдФрд░ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ IP рдлреЛрди рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдлреЛрди рдПрдбрд╛рдкреНрдЯрд░ (VoIP рд╕реЗ рдПрдирд╛рд▓реЙрдЧ) рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдпрд╣ рднреЗрджреНрдпрддрд╛ рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд░рд┐рд╕рд╛рд╡ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рдЬреЛ рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗ рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдПрдХ рдСрдлрд▓рд╛рдЗрди рдкрд╛рд╕рд╡рд░реНрдб рд╣рдорд▓реЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдФрд░ рдпрд╣ рдЪреБрдиреМрддреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред

**рднреЗрджреНрдпрддрд╛ рдкрд░рд┐рджреГрд╢реНрдп рдпрд╣рд╛рдБ рд╕реЗ**:

  1. рдПрдХ IP рдлреЛрди (рд╢рд┐рдХрд╛рд░) рдХрд┐рд╕реА рднреА рдкреЛрд░реНрдЯ рдкрд░ рд╕реБрди рд░рд╣рд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг: 5060), рдлреЛрди рдХреЙрд▓ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ
  2. рд╣рдорд▓рд╛рд╡рд░ IP рдлреЛрди рдХреЛ INVITE рднреЗрдЬрддрд╛ рд╣реИ
  3. рд╢рд┐рдХрд╛рд░ рдлреЛрди рдмрдЬрдиреЗ рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рдХреЛрдИ рдЙрдард╛рддрд╛ рд╣реИ рдФрд░ рдлреЛрди рд░рдЦ рджреЗрддрд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рджреВрд╕рд░реА рддрд░рдл рдХреЛрдИ рдлреЛрди рдХрд╛ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗрддрд╛)
  4. рдЬрдм рдлреЛрди рд░рдЦ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╢рд┐рдХрд╛рд░ рдлреЛрди рд╣рдорд▓рд╛рд╡рд░ рдХреЛ BYE рднреЗрдЬрддрд╛ рд╣реИ
  5. рд╣рдорд▓рд╛рд╡рд░ 407 рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдкреВрдЫрддрд╛ рд╣реИ рдФрд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЪреБрдиреМрддреА рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИ
  6. рд╢рд┐рдХрд╛рд░ рдлреЛрди рджреВрд╕рд░реА BYE рдореЗрдВ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЪреБрдиреМрддреА рдХрд╛ рдЙрддреНрддрд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ
  7. рд╣рдорд▓рд╛рд╡рд░ рдлрд┐рд░ рдЕрдкрдиреА рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди (рдпрд╛ рд╡рд┐рддрд░рд┐рдд рдиреЗрдЯрд╡рд░реНрдХ рдЖрджрд┐) рдкрд░ рдЪреБрдиреМрддреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрд░ рдмреНрд░реВрдЯ-рдлреЛрд░реНрд╕ рд╣рдорд▓рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИ
  • SIPPTS рд░рд┐рд╕рд╛рд╡ sippts** рд╕реЗ:** SIPPTS рд░рд┐рд╕рд╛рд╡ SIP Digest Leak рднреЗрджреНрдпрддрд╛ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рддрд╛ рд╣реИ рдЬреЛ рдХрдИ SIP рдлреЛрди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЖрдЙрдЯрдкреБрдЯ рдХреЛ SipCrack рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЗрд╕реЗ SIPPTS dcrack рдпрд╛ SipCrack рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмреНрд░реВрдЯрдлреЛрд░реНрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред
bash
sippts leak -i 10.10.0.10 [!] Target: 10.10.0.10:5060/UDP [!] Caller: 100 [!] Callee: 100 [=>] Request INVITE [<=] Response 100 Trying [<=] Response 180 Ringing [<=] Response 200 OK [=>] Request ACK ... waiting for BYE ... [<=] Received BYE [=>] Request 407 Proxy Authentication Required [<=] Received BYE with digest [=>] Request 200 Ok Auth=Digest username="pepelux", realm="asterisk", nonce="lcwnqoz0", uri="sip:100@10.10.0.10:56583;transport=UDP", response="31fece0d4ff6fd524c1d4c9482e99bb2", algorithm=MD5

Click2Call

Click2Call рдПрдХ рд╡реЗрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рдЬреЛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдЙрддреНрдкрд╛рдж рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦ рд╕рдХрддрд╛ рд╣реИ) рдХрд┐ рд╡рд╣ рдЕрдкрдирд╛ рдЯреЗрд▓реАрдлреЛрди рдирдВрдмрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗ рддрд╛рдХрд┐ рдЙрд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдлрд┐рд░ рдПрдХ рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рдХреЙрд▓ рдХреА рдЬрд╛рдПрдЧреА, рдФрд░ рдЬрдм рд╡рд╣ рдлреЛрди рдЙрдард╛рддрд╛ рд╣реИ рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдПрдЬреЗрдВрдЯ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред

рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп Asterisk рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рд╣реИ:

scss
[web_user] secret = complex_password deny = 0.0.0.0/0.0.0.0 allow = 0.0.0.0/0.0.0.0 displayconnects = yes read = system,call,log,verbose,agent,user,config,dtmf,reporting,crd,diapla write = system,call,agent,user,config,command,reporting,originate
  • рдкрд┐рдЫрд▓реЗ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдВ ANY IP рдкрддрд╛ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ (рдпрджрд┐ рдкрд╛рд╕рд╡рд░реНрдб рдЬреНрдЮрд╛рдд рд╣реИ)ред
  • рдПрдХ рдХреЙрд▓ рдЖрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХреЛрдИ рдкрдврд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ originate рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЗрди рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде, рдХреЛрдИ рднреА IP рдЬреЛ рдкрд╛рд╕рд╡рд░реНрдб рдЬрд╛рдирддрд╛ рд╣реИ, рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдирд┐рдХрд╛рд▓ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ:

bash
# Get all the peers exec 3<>/dev/tcp/10.10.10.10/5038 && echo -e "Action: Login\nUsername:test\nSecret:password\nEvents: off\n\nAction:Command\nCommand: sip show peers\n\nAction: logoff\n\n">&3 && cat <&3

рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдпрд╛ рдХреНрд░рд┐рдпрд╛рдПрдБ рдорд╛рдВрдЧреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВред

рдИрд╡реНрд╕рдбреНрд░реЙрдкрд┐рдВрдЧ

Asterisk рдореЗрдВ ChanSpy рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдЬреЛ рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддрд╛рд░(реЛрдВ) (рдпрд╛ рд╕рднреА) рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╣реЛ рд░рд╣реА рдмрд╛рддрдЪреАрдд рдХреЛ рд╕реБрдирд╛ рдЬрд╛ рд╕рдХреЗред рдЗрд╕ рдХрдорд╛рдВрдб рдХреЛ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, exten => 333,1,ChanSpy('all',qb) рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рд╡рд┐рд╕реНрддрд╛рд░ 333 рдкрд░ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ all рд╡рд┐рд╕реНрддрд╛рд░реЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░реЗрдЧрд╛, рдЬрдм рднреА рдПрдХ рдирдИ рдмрд╛рддрдЪреАрдд рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ (b) рддреЛ рд╕реБрдирдирд╛ рд╢реБрд░реВ рдХрд░реЗрдЧрд╛ рд╢рд╛рдВрдд рдореЛрдб (q) рдореЗрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЗрд╕рдореЗрдВ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗред рдЖрдк * рджрдмрд╛рдХрд░ рдпрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдХреЗ рдПрдХ рдмрд╛рддрдЪреАрдд рд╕реЗ рджреВрд╕рд░реА рдмрд╛рддрдЪреАрдд рдореЗрдВ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ExtenSpy рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИред

рдмрд╛рддрдЪреАрдд рдХреЛ рд╕реБрдирдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЙрдиреНрд╣реЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдЬреИрд╕реЗ:

scss
[recorded-context] exten => _X.,1,Set(NAME=/tmp/${CONTEXT}_${EXTEN}_${CALLERID(num)}_${UNIQUEID}.wav) exten => _X.,2,MixMonitor(${NAME})

рдХреЙрд▓ /tmp рдореЗрдВ рд╕рд╣реЗрдЬреЗ рдЬрд╛рдПрдВрдЧреЗред

рдЖрдк Asterisk рдХреЛ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХреЙрд▓ рдмрдВрдж рд╣реЛрдиреЗ рдкрд░ рд▓реАрдХ рдХрд░ рджреЗрдЧреАред

scss
exten => h,1,System(/tmp/leak_conv.sh &)

RTCPBleed vulnerability

RTCPBleed рдПрдХ рдкреНрд░рдореБрдЦ рд╕реБрд░рдХреНрд╖рд╛ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬреЛ Asterisk-рдЖрдзрд╛рд░рд┐рдд VoIP рд╕рд░реНрд╡рд░реЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреА рд╣реИ (2017 рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд)ред рдпрд╣ рднреЗрджреНрдпрддрд╛ RTP (Real Time Protocol) рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рдЬреЛ VoIP рд╡рд╛рд░реНрддрд╛рд▓рд╛рдкреЛрдВ рдХреЛ рд▓реЗ рдЬрд╛рддреА рд╣реИ, рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдФрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЗрд╕рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ RTP рдЯреНрд░реИрдлрд╝рд┐рдХ NAT (Network Address Translation) рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рддреЗ рд╕рдордп рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред

RTP рдкреНрд░реЙрдХреНрд╕реА RTC рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА NAT рд╕реАрдорд╛рдУрдВ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ RTP рд╕реНрдЯреНрд░реАрдо рдХреЛ рджреЛ рдпрд╛ рдЕрдзрд┐рдХ рдкрдХреНрд╖реЛрдВ рдХреЗ рдмреАрдЪ рдкреНрд░реЙрдХреНрд╕реА рдХрд░рдХреЗред рдЬрдм NAT рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ RTP рдкреНрд░реЙрдХреНрд╕реА рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдЕрдХреНрд╕рд░ рд╕рд┐рдЧреНрдирд▓рд┐рдВрдЧ (рдЬреИрд╕реЗ SIP) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд RTP IP рдФрд░ рдкреЛрд░реНрдЯ рдЬрд╛рдирдХрд╛рд░реА рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдЗрд╕рд▓рд┐рдП, рдХрдИ RTP рдкреНрд░реЙрдХреНрд╕рд┐рдпреЛрдВ рдиреЗ рдПрдХ рддрдВрддреНрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ рдЬрд╣рд╛рдБ рдРрд╕рд╛ IP рдФрд░ рдкреЛрд░реНрдЯ рдЯреБрдкрд▓реЗрдЯ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реАрдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЕрдХреНрд╕рд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ RTP рдЯреНрд░реИрдлрд╝рд┐рдХ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдХреЗ рдФрд░ рдХрд┐рд╕реА рднреА рдЖрдиреЗ рд╡рд╛рд▓реЗ RTP рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд IP рдФрд░ рдкреЛрд░реНрдЯ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рддрдВрддреНрд░ рдХреЛ "рд╕реАрдЦрдиреЗ рдХреЗ рдореЛрдб" рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рд╣рдорд▓рд╛рд╡рд░ RTP рдЯреНрд░реИрдлрд╝рд┐рдХ RTP рдкреНрд░реЙрдХреНрд╕реА рдХреЛ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕ рдкреНрд░реЙрдХреНрд╕реА рдХрд┐рдП рдЧрдП RTP рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рдЪрд▓ рд░рд╣реЗ RTP рд╕реНрдЯреНрд░реАрдо рдХреЗ рдХреЙрд▓рд░ рдпрд╛ рдХрд▓реА рдХреЗ рд▓рд┐рдП рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдо рдЗрд╕ рднреЗрджреНрдпрддрд╛ рдХреЛ RTP Bleed рдХрд╣рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╣рдорд▓рд╛рд╡рд░реЛрдВ рдХреЛ рд╡реИрдз рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рднреЗрдЬреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ RTP рдореАрдбрд┐рдпрд╛ рд╕реНрдЯреНрд░реАрдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

RTP рдкреНрд░реЙрдХреНрд╕рд┐рдпреЛрдВ рдФрд░ RTP рд╕реНрдЯреИрдХреНрд╕ рдХрд╛ рдПрдХ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рд╡реНрдпрд╡рд╣рд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдХрднреА-рдХрднреА, рднрд▓реЗ рд╣реА RTP Bleed рдХреЗ рд▓рд┐рдП рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рди рд╣реЛрдВ, рд╡реЗ рдХрд┐рд╕реА рднреА рд╕реНрд░реЛрдд рд╕реЗ RTP рдкреИрдХреЗрдЯ рд╕реНрд╡реАрдХрд╛рд░, рдЕрдЧреНрд░реЗрд╖рд┐рдд рдФрд░/рдпрд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдВрдЧреЗред рдЗрд╕рд▓рд┐рдП рд╣рдорд▓рд╛рд╡рд░ RTP рдкреИрдХреЗрдЯ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рд╡реИрдз рдореАрдбрд┐рдпрд╛ рдХреЗ рдмрдЬрд╛рдп рдЕрдкрдирд╛ рдореАрдбрд┐рдпрд╛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдЗрд╕ рд╣рдорд▓реЗ рдХреЛ RTP рдЗрдВрдЬреЗрдХреНрд╢рди рдХрд╣рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореМрдЬреВрджрд╛ RTP рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рдЕрд╡реИрдз RTP рдкреИрдХреЗрдЯреЛрдВ рдХреЗ рдЗрдВрдЬреЗрдХреНрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рднреЗрджреНрдпрддрд╛ RTP рдкреНрд░реЙрдХреНрд╕рд┐рдпреЛрдВ рдФрд░ рдПрдВрдбрдкреЙрдЗрдВрдЯреНрд╕ рджреЛрдиреЛрдВ рдореЗрдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИред

Asterisk рдФрд░ FreePBX рдиреЗ рдкрд╛рд░рдВрдкрд░рд┐рдХ рд░реВрдк рд╕реЗ NAT=yes рд╕реЗрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рдЬреЛ RTP рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдХреЙрд▓ рдкрд░ рдХреЛрдИ рдСрдбрд┐рдпреЛ рдпрд╛ рдПрдХрддрд░рдлрд╛ рдСрдбрд┐рдпреЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ https://www.rtpbleed.com/

  • SIPPTS rtpbleed рд╕реЗ sippts: SIPPTS rtpbleed RTP рд╕реНрдЯреНрд░реАрдо рднреЗрдЬрдХрд░ RTP Bleed рднреЗрджреНрдпрддрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИред
bash
sippts rtpbleed -i 10.10.0.10
  • SIPPTS rtcpbleed from sippts: SIPPTS rtcpbleed RTP Bleed рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ RTCP рд╕реНрдЯреНрд░реАрдо рднреЗрдЬрдХрд░ред
bash
sippts rtcpbleed -i 10.10.0.10
  • SIPPTS rtpbleedflood from sippts: SIPPTS rtpbleedflood RTP Bleed рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХрд╛ рдлрд╛рдпрджрд╛ рдЙрдард╛рддреЗ рд╣реБрдП RTP рд╕реНрдЯреНрд░реАрдо рднреЗрдЬрддрд╛ рд╣реИред
bash
sippts rtpbleedflood -i 10.10.0.10 -p 10070 -v
  • SIPPTS rtpbleedinject from sippts: SIPPTS rtpbleedinject RTP Bleed рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХрд╛ рдлрд╛рдпрджрд╛ рдЙрдард╛рддреЗ рд╣реБрдП рдПрдХ рдСрдбрд┐рдпреЛ рдлрд╝рд╛рдЗрд▓ (WAV рдкреНрд░рд╛рд░реВрдк) рдХреЛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИред
bash
sippts rtpbleedinject -i 10.10.0.10 -p 10070 -f audio.wav

RCE

Asterisk рдореЗрдВ рдЖрдк рдХрд┐рд╕реА рддрд░рд╣ extension рдирд┐рдпрдо рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдордЬреЛрд░ рд╡реЗрдм рдкреНрд░рдмрдВрдзрдХ рд╕рд░реНрд╡рд░ рд╕реЗ рд╕рдордЭреМрддрд╛ рдХрд░рдХреЗ), System рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ RCE рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред

scss
same => n,System(echo "Called at $(date)" >> /tmp/call_log.txt)

There is command called Shell that could be used instead of System to execute system commands if necessary.

warning

If the server is рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рд╡рд░реНрдгреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рд╣реИ in the System command (like in Elastix), check if the web server allows to рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЕрдВрджрд░ рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рдирд╛ (like in Elastix or trixbox), and use it to рдПрдХ рдмреИрдХрдбреЛрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдПрдВ and then use System to execute that script.

Interesting local files and permissions

  • sip.conf -> Contains the password of SIP users.
  • If the Asterisk server is running as root, you could compromise root
  • mysql root user might рдХреЛрдИ рдкрд╛рд╕рд╡рд░реНрдб рдирд╣реАрдВ рд╣реЛ.
  • this could be used to create a new mysql user as backdoor
  • FreePBX
  • amportal.conf -> Contains the password of the web panel administrator (FreePBX)
  • FreePBX.conf -> Constains the password of the user FreePBXuser used to access the database
  • this could be used to create a new mysql user as backdoor
  • Elastix
  • Elastix.conf -> Contains several passwords in clear text like mysql root pass, IMAPd pass, web admin pass
  • рдХрдИ рдлрд╝реЛрд▓реНрдбрд░ compromised asterisk user рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЖрдПрдВрдЧреЗ (if not running as root). This user can read the previous files and also controls the configuration, so he could make Asterisk to load other backdoored binaries when executed.

RTP Injection

It's possible to insert a .wav in converstions using tools such as rtpinsertsound (sudo apt install rtpinsertsound) and rtpmixsound (sudo apt install rtpmixsound).

Or you could use the scripts from http://blog.pepelux.org/2011/09/13/inyectando-trafico-rtp-en-una-conversacion-voip/ to scan conversations (rtpscan.pl), send a .wav to a conversation (rtpsend.pl) and insert noise in a conversation (rtpflood.pl).

DoS

There are several ways to try to achieve DoS in VoIP servers.

  • SIPPTS flood from sippts**: SIPPTS flood sends unlimited messages to the target.
  • sippts flood -i 10.10.0.10 -m invite -v
  • SIPPTS ping from sippts**: SIPPTS ping makes a SIP ping to see the server response time.
  • sippts ping -i 10.10.0.10
  • IAXFlooder: DoS IAX protocol used by Asterisk
  • inviteflood: A tool to perform SIP/SDP INVITE message flooding over UDP/IP.
  • rtpflood: Send several well formed RTP packets. Its needed to know the RTP ports that are being used (sniff first).
  • SIPp: Allows to analyze and generate SIP traffic. so it can be used to DoS also.
  • SIPsak: SIP swiss army knife. Can also be used to perform SIP attacks.
  • Fuzzers: protos-sip, voiper.

OS Vulnerabilities

The easiest way to install a software such as Asterisk is to download an OS distribution that has it already installed, such as: FreePBX, Elastix, Trixbox... The problem with those is that once it's working sysadmins might рдлрд┐рд░ рд╕реЗ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░реЗрдВ and vulnerabilities are going to be discovered with time.

References

tip

AWS рд╣реИрдХрд┐рдВрдЧ рд╕реАрдЦреЗрдВ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ:HackTricks Training AWS Red Team Expert (ARTE)
GCP рд╣реИрдХрд┐рдВрдЧ рд╕реАрдЦреЗрдВ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ